专利摘要:
The disclosed modalities refer to the updating of a back-end database containing data sets that fill a plurality of web pages on a website. Operations include receiving a plurality of data elements through a user interface; store groups of at least one data element in a database; generate a plurality of virtual web pages, where each virtual web page is a preview of a corresponding actual web page before the corresponding actual web page is activated; display each group of at least one data element in a separate one from the plurality of virtual web pages; display an editing tool to allow a user to edit a virtual web page from the plurality of virtual web pages; convert edits on the virtual web page into updates to the database; store updates in the database; and enable a display on the actual web page corresponding with the updates.
公开号:BR112019024309A2
申请号:R112019024309-7
申请日:2018-07-24
公开日:2020-11-03
发明作者:Uval A Blumenfeld;Amit Kaufman;Shay Weiner;Yoav ABRAHAMI
申请人:Wix.Com Ltd.;
IPC主号:
专利说明:

[0001] [0001] This order claims priority to US Provisional Order 62 / 536,403, filed on July 24, 2017 and US Provisional Order 62 / 702,278, filed on July 23, 2018, the entire amount of which is incorporated by reference.
[0002] [0002] This order also generally refers to and incorporates by reference in its entirety the following orders: Order US 13 / 596,146, filed on August 28, 2012; US Order 13 / 771,119, filed February 20, 2013; US Order 13 / 779,798, filed February 28, 2013; US Order 13 / 786,488, filed March 6, 2013; US Order 13 / 959,759, filed on August 6, 2013; US application 15 / 339,984, filed on November 1, 2016; US Order 14 / 053,614, filed on October 15, 2013; US application 15 / 233,987, filed on August 11, 2016; US Order 14 / 176,166, filed February 10, 2014; US Order 14 / 207,761, filed March 13, 2014; US Order 14 / 483,981, filed September 11, 2014; US Order 14 / 559,943, filed December 4, 2014; US Order 14 / 619,903, filed February 11, 2015; US application 15 / 706,789, filed September 18, 2017; US Order 14 / 207,930, filed March 13, 2014; US application 15 / 657,156, filed on July 23, 2017; US Order 14 / 699,828, filed April 29, 2015; US application 15 / 653,568, filed on July 19, 2017; US Order 14 / 926,007, filed October 29, 2015; US Order
[0003] [0003] This disclosure refers to website creation systems for the creation of indexable websites and web applications that integrate customized backend functionality running on a system fully managed by third parties. For example, modalities include the development of custom back-end functionality that can be run in a stateless server environment (such as containers, server-less code or virtual machines) when a programmable event associated with a front-end component or activity of the system is triggered without the system user having to be involved in the management of the client-server interaction.
[0004] [0004] In addition, this disclosure refers to the burden of hosting and managing a website, providing instant execution instances on the website or individual web pages. The instances can, in some modalities, be generated as virtual machines, containers or code elements without a server. More specifically, this disclosure refers to systems and methods to monitor the load and activity of hosted sites, in order to automatically add and remove instances that serve sites hosted on the system without significant delay in responding to a request to serve a site . In addition, hosted sites can consist of a combination of generic and site-specific code.
[0005] [0005] Even more, the disclosure refers to the visualization and testing of websites with real-time access to the data generated in a production environment for and by the end user of the website and the data linked to the website. More specifically, this disclosure refers to the provision of access to data generally seen by an end user of a website to test the functionality and experience of a website by a programmer or website designer.
[0006] [0006] In addition, this disclosure refers to the editing of a database while viewing a virtual web page. For example, users can store groups of data elements (for example, text, graphics, videos, etc.) in a database and one or more virtual web pages can be generated to display a preview of the web pages. When viewing virtual web pages, users can be allowed to edit the virtual web page and their edits can be translated into updates to the database. In addition, during a real-time display of a real web page corresponding to the virtual web page, updates to the database can be reflected in the displayed real-time display.
[0007] [0007] Website creation systems, as disclosed herein, are used to allow people with limited experience in software development and / or limited resources to develop and host a personalized website. Conventional website development systems, on the other hand, offer a template front-end UI with limited or non-existent back-end control through calls to external services or embedded code snippets that call for server-side code , limiting the system to web pages with no minimum options or for data manipulation or other custom functionality. Other systems are expected to be fully involved in configuring client-server interactions to access full back-end control.
[0008] [0008] Conventional website development systems do not have the ability to create web page layouts to be filled with data to create multiple dynamic pages that can be indexed. In addition, conventional systems do not have the ability to integrate software-based routers for web pages, which can allow web pages to contain content or work differently, depending on how the user arrived at the web pages or interacts with them. Conventional systems also do not have the ability to monitor a user’s interaction on the site and show resulting results based on the previous recorded functionality associated with these interactions.
[0009] [0009] Conventional managed website hosting systems are used to fulfill requests to a website, using dedicated servers, which cost significant money and resources to stay up and running, or using a cold start of new instances when a new website is requested or load from a particular website. The site exceeds a certain delay in responding to a request. This process of cold starting new instances of a website or web pages implies a substantial delay in processing and consequent latency in the user experience.
[00010] [00010] Conventional website development systems are also limited in terms of their ability to allow users to dynamically edit page views. These systems are also unable to receive edits to a viewed page and convert those edits into updates to a database on which all or parts of the page are based. As a result, using these conventional systems involves more user action, more bandwidth and more complicated operations.
[00011] [00011] Website testing systems, as disclosed in this document, can be configured to create a realistic experience of using the website by an end user without interrupting the end user experience. Conventional website testing systems, however, provide a limited viewing interface for reviewing the website in the way that an end user would experience on the website, but they have no way of providing real-time access to the data generated on the website that is being tested. Conventional systems also lack the ability to add new data and delete data generated for the website without affecting the end user's experience.
[00012] [00012] Conventional website hosting systems are also vulnerable to plug-ins (for example, software that can be integrated into a website's front-end or back-end) that contain malicious code (for example, malware). When this code is uploaded by an owner or user of a website, it can spread through the website hosting system to affect the websites of other owners or users. Conventional website hosting systems do not have the ability to isolate submitted plug-ins and prevent them from infecting other websites that are usually hosted by the system.
[00013] [00013] In this way, technological solutions for new website development systems are needed to manage back-end functionality, to offer the freedom to have more customization of the website and without involving a user in server configuration, provisioning or server interactions -client. In addition, it is necessary to provide technological tools to users for the creation of personalized websites, including with personalized encoding resources, without requiring users to encode entire websites from scratch.
[00014] [00014] In addition, technological solutions are needed for a new system on demand to handle requests from websites without significant delay. These technological solutions must use virtual computing resources, such as virtual machines, containers, serverless code, etc. In addition, these solutions should allow highly personalized sites, including features common to many pages or sites, as well as features unique to specific pages or sites.
[00015] [00015] In addition, technological solutions are also needed for a new website testing system with real-time access to data available for production.
[00016] [00016] In addition, technological solutions are needed to isolate submitted plug-ins and prevent them from infecting co-hosted sites. These techniques should be able to isolate the front-end and back-end plug-ins, while still allowing these plug-ins to be loaded and used by site owners and users. SUMMARY
[00017] [00017] Certain modalities of this disclosure refer to a system for creating a website. The system can include an online website creation system configured to allow website builders to add back-end functionality to a centrally hosted website, the centrally hosted website including one or more pages indexable by a search engine. The online system can allow dynamic page editing and viewing to use a common online database, which designers and users can access simultaneously. The system can comprise an online database configured to store a library of website building elements to configure a front end of an indexable web page, as well as at least one processor configured to perform certain operations. Operations can include transmitting first instructions to a user's remote web browser, first instructions that allow the user to remotely access the stored library via a unified interface, displayed by the remote web browser, and allowing the user use a selection of building elements to build the front end of the indexable web page, where the unified interface provides the user with access to the building elements and custom back-end functionality associated with the indexable web page; enable, through the unified interface, displayed by the remote web browser, the user to configure a programmable event to activate the user-editable code, providing customized back-end functionality associated with the indexable web page; receive, through the unified interface, user edits to the user editable code to implement the custom backend functionality associated with the programmable event; store the editable code by the user edited in a code storage system in communication with the online database; and in response to a trigger associated with the programmable event, executing the editable code by the edited user to implement custom backend functionality.
[00018] [00018] In some modalities, the system includes the execution of the editable code by the edited user to implement the personalized back-end functionality based on a hook that causes the editable code to execute by the edited user.
[00019] [00019] In addition, in some embodiments, the hook is a web hook, a data hook or a data link router hook.
[00020] [00020] Furthermore, in some modalities, at least one processor is still configured to automatically generate, based on the rules stored in the online database, skeleton code associated with a website creation element selected by the user and transmit the code skeleton to the remote web browser to activate the skeleton code.
[00021] [00021] In addition, in some modalities, the system includes a function associated with the website creation element selected by the user and a code snippet associated with the function as part of the automatically generated skeleton code.
[00022] [00022] In addition, in some embodiments, the system includes a unified interface that can be viewed by a remote web browser, which in turn includes a front-end website editing window and a back- custom end.
[00023] [00023] In addition, in some modalities, the system includes a trigger for data activity involving a specific data set that is associated with customized backend functionality.
[00024] [00024] In addition, in some modalities, the system includes a trigger for an update inserted in the indexable page.
[00025] [00025] In addition, in some modalities, the system includes a trigger for a page transition on the indexable web page.
[00026] [00026] In addition, in some modalities, the system includes a trigger for a defined interaction between the user and the indexable web page.
[00027] [00027] In addition, in some modalities, at least one processor is still configured to execute the editable code by the edited user to implement a plurality of customized back-end functionalities in response to the trigger associated with the programmable event.
[00028] [00028] Still according to some modalities, the at least one processor is still configured to execute the editable code by the edited user to implement a customized back-end functionality in response to a plurality of triggers associated with a plurality of programmable events.
[00029] [00029] Additionally, according to some modalities, the system includes a code storage system configured to store code for a software-based router that handles requests for customer input on the indexable page.
[00030] [00030] In addition, in some modalities, the system includes a storage system that is an online database and a code storage system.
[00031] [00031] Certain modalities are related to a computer-implemented method to create a website using customized back-end functionality. The method may include maintaining a set of online bases configured to store a library of website creation elements to configure a front end of an indexable web page; transmit first instructions to a user's remote web browser, the first instructions that allow the user to remotely access the stored library through a unified interface, displayed by the remote web browser, and allow the user to use a selection of building elements to build the front end of the indexable web page, where the unified interface provides the user with access to the building elements and custom backend functionality associated with the indexable web page; enable, through the unified interface, displayed by the remote web browser, the user to configure a programmable event to activate the user-editable code, providing customized back-end functionality associated with the indexable web page; receive, through the unified interface, user edits to the user editable code to implement the custom backend functionality associated with the programmable event; store the editable code by the user edited in a code storage system in communication with the online database; and in response to a trigger associated with the programmable event, executing the editable code by the edited user to implement custom backend functionality.
[00032] [00032] In addition, in some embodiments, the method includes obtaining data external to the online database and external to the remote web browser for use in executing the editable code by the edited user to implement the customized backend functionality in response to trigger.
[00033] [00033] In addition, according to some modalities, the method includes providing the user with access to at least some parts of the code editable by the user for editing in the form of selectable code segments.
[00034] [00034] Furthermore, according to some modalities, the method includes executing the editable code by the edited user to implement the customized back-end functionality based on a hook that causes the editable code to execute by the edited user.
[00035] [00035] In addition, according to some modalities, the method includes a hook that is a web hook, or a data hook or a data link router hook.
[00036] [00036] In addition, according to some modalities, the method includes generating skeleton code associated with a website creation element selected by the user by at least one processor based on rules stored in the online database and the transmission of the code skeleton to the remote web browser to activate the skeleton code.
[00037] [00037] In addition, according to some modalities, the automatically generated skeleton code includes a function associated with a construction element selected by the user and a code snippet associated with the function.
[00038] [00038] Furthermore, in some embodiments, the method includes providing a unified interface that can be viewed by a remote web browser, which includes a front-end website editing window and a back-end editing window personalized.
[00039] [00039] Also, in some modalities, the method includes a trigger for data activity involving a specific data set that is associated with customized back-end functionality.
[00040] [00040] In addition, in some modalities, the method includes a trigger for an update inserted in the indexable web page.
[00041] [00041] In addition, in some modalities, the method includes a trigger for a defined interaction between the user and the indexable web page.
[00042] [00042] Certain modalities are related to a system for assigning on demand a web server execution instance to a website server. The system may include at least a first memory location storing generic site server code to host a plurality of sites and at least a second memory location storing, segregated from the first memory location, unique site-specific code for each of the plurality of sites. The system can also include at least one processor configured to perform operations, including to control a plurality of instances of web server execution, at least some of the instances that execute site-specific code unique to at least one among the plurality of sites and at least others of the web server execution instances that run the generic code for the website server without the unique code specific to any website; receive a request to access a specific website, the specific website having been built on a platform, including the generic code of the website server; determine if the specific site is already hosted by one of the various instances of running the web server; and when it is determined that the specific website requested is not yet hosted on one of several web server execution instances: direct the request to a first among the plurality of web server execution instances running generic site server code ; inject in the first among the plurality of instances of web server execution executing the generic code of the website server, additional specific code of the website exclusive to the requested website from at least a second memory location; and respond to the request, through the first among the plurality of web server execution instances, through a combination of the generic site server code and the injected site specific code, unique to the requested site.
[00043] [00043] In some embodiments, the system may include a plurality of instances of web server execution which, in turn, may include one or more containers, virtual machines or physical machine processes.
[00044] [00044] In addition, in some embodiments, the request is an HTTP request and the system includes an operation to respond to the request that is executed before the request expires.
[00045] [00045] In addition, in some modalities, the system includes an operation to respond to the request that is performed within 100 ms after receipt of the request.
[00046] [00046] In addition, in some modalities, the system includes a proxy server to handle HTTP requests, including operations to receive and determine.
[00047] [00047] In addition, in some modalities, the operation to determine still includes consulting a web server execution instance manager to find out if the specific website is already hosted by one of the plurality of web server execution instances.
[00048] [00048] In addition, in some embodiments, the operation to determine still includes forwarding the request to a web server execution instance manager and, if the request fails, determining from there that the specific website requested is not currently hosted by one among the plurality of running web server instances.
[00049] [00049] In addition, in some embodiments, the operation to determine includes determining, based on a state table, that the specific website is already hosted by one of the plurality of instances of web server execution.
[00050] [00050] In addition, in some modalities, the system includes a state table maintained on a proxy server and identifies a list of sites already hosted by one among the plurality of instances of web server execution.
[00051] [00051] In addition, in some embodiments, the system includes operations to update the status table to remove an inactive site from the list based on a predetermined period of inactivity for requests associated with the inactive site.
[00052] [00052] In addition, in some modalities, the specific code of the additional site exclusive to the requested site includes exclusive back-end code for the requested site.
[00053] [00053] In addition, in some modalities, the specific code of the additional site exclusive to the requested site includes the code associated with a plug-in referenced by the requested site.
[00054] [00054] In addition, in some modalities, operations also include monitoring a set of web server execution instances that do not yet host a specific website and when the size of the web server execution instance set is less than one limit, instruct a web server execution instance manager to activate additional web server execution instances.
[00055] [00055] In addition, in some modalities, operations also include monitoring a set of web server execution instances that do not yet host a specific website and when the size of the web server execution instance set is larger than one limit, instruct a web server run instance manager to shut down at least one web server run instance.
[00056] [00056] Certain modalities of the present disclosure refer to a computer-implemented method for assigning on demand a web server execution instance to a website server. The method may include storing, in a first memory location,
[00057] [00057] According to some modalities, the plurality of instances of web server execution can include one or more containers, virtual machines or physical machine process.
[00058] [00058] In addition, according to some modalities, the request is an HTTP request and the method includes the Step of responding to the request before the request expires.
[00059] [00059] In addition, according to some modalities, the method includes the Step of responding to the request that is being executed within 100 ms after receiving the request.
[00060] [00060] Certain modalities of the present disclosure refer to a system for assigning on demand a web server execution instance to a website server. The system may comprise at least one memory device that stores generic site server code to host a plurality of sites and site-specific code unique to each of the plurality of sites; and at least one processor configured to perform operations. Operations can include controlling a plurality of web server execution instances, at least some of the instances that execute unique site-specific code for at least one among the plurality of sites and at least others of the web server execution instances that execute the generic code of the site server without the unique code specific to any site; receive a request to access a specific website, the specific website having been built on a platform, including the generic code of the website server; determine if the specific site is already hosted by one of the various instances of running the web server; and when it is determined that the specific website requested is not yet hosted on one of several web server execution instances: direct the request to a first among the plurality of web server execution instances running generic site server code ; inject in the first among the plurality of instances of web server execution executing the generic code of the website server, additional specific code of the website exclusive to the requested website from at least a second memory location; and respond to the request, through the first among the plurality of instances of web server execution, through a combination of the generic code of the website server and the specific code of the injected website, exclusive to the requested website.
[00061] [00061] According to some modalities, the first among the plurality of web server execution instances executing the generic site server code is configured to obtain the additional site-specific code unique to the requested site from at least one memory device based on at least one requested site identifier included in the request.
[00062] [00062] Certain modalities are related to a system for simultaneously executing real-time data from a website in a site deployment environment, in addition to running site test data in a non-public testing environment. The system can include at least one common database that stores the website's real-time data and the website's test data, where the test data is associated in at least one common database to the real-time data; and at least one processor configured to perform operations. Operations can perform functions, including accessing real-time data stored in at least one common database; use the real-time data accessed to render the site in the site’s deployment environment; receive a request to perform tests on the site while the site is active in the site deployment environment; access, at least in a common database, a test data set responsive to the request, the test data set including one or more test data elements corresponding to the respective real-time data elements, where the set test data is not accessible in the site deployment environment; and while the site is operating in the site deployment environment, test the site in parallel in the Test Environment for non-public sites, so that both the test data set and the real-time data are used simultaneously by the site in the middle test of the non-public site.
[00063] [00063] According to some modalities, test data is associated with real-time data using markers configured to cause, during testing, specific elements of test data to replace specific elements of real-time data.
[00064] [00064] In addition, according to some modalities, the markers are configured to be deleted after the test.
[00065] [00065] In addition, according to some modalities, the markers are indicative of instructions for ignoring specific data in real time during the test.
[00066] [00066] In addition, according to some modalities, the system is an environment for hosting websites to host a plurality of websites generated by a plurality of users.
[00067] [00067] In addition, according to some modalities, at least one common database is a centralized online database configured to store real-time data associated with the plurality of sites generated by the plurality of users.
[00068] [00068] In addition, according to some modalities, the test data includes recent added data not previously associated with the website's real-time data.
[00069] [00069] In addition, according to some modalities, the test data is hidden from the site deployment environment.
[00070] [00070] In addition, according to some modalities, the system includes test data that responds to a request to add data in the Test Environment of non-public sites.
[00071] [00071] In addition, according to some modalities, the test data is created in an area of at least one common database hidden in the site deployment environment.
[00072] [00072] In addition, according to some modalities, the system includes elements of test data corresponding to the respective data elements in real time include data elements indicative of a requested change made in a duplicate of the respective data elements in real time .
[00073] [00073] In addition, according to some modalities, the system includes determining the corresponding test data elements for the real-time data elements requested to be changed and, when the corresponding corresponding test data elements exist, executing the requested change in the corresponding corresponding test data elements.
[00074] [00074] In addition, according to some modalities, the system receives a query initiated in the Test Environment of non-public sites, responding to the query with one or more of the data elements in real time when one or more elements of real-time data is not associated with the corresponding corresponding test data elements and responding to the query with one or more elements of test data when one or more real-time data elements are associated with the corresponding corresponding test data elements.
[00075] [00075] In addition, according to some modalities, at least one processor is still configured to merge the test data into the real-time data, thus replacing one or more of the real-time data elements with the respective data elements of corresponding test results.
[00076] [00076] Certain modalities of this disclosure refer to a method implemented by computer to simultaneously execute real-time data from a website in a site deployment environment, in addition to executing site test data in a non-public testing environment. The method may include storing the website's real-time data and the website's test data, where the test data is associated in at least one database common to the real-time data; access real-time data stored in at least one common database; use the real-time data accessed to deliver the site to the site’s deployment environment; receive a request to perform tests on the site while the site is active in the site deployment environment; access, at least in a common database, a test data set responsive to the request, the test data set including one or more test data elements corresponding to the respective real-time data elements, where the set test data is not accessible in the site deployment environment; and while the site is operating in the site’s deployment environment, test the site in parallel in the Test Environment for non-public sites, so that the test data set and real-time data are used simultaneously by the site in the Test Environment of non-public sites.
[00077] [00077] According to some modalities, the method may include associating test data with real-time data using markers configured to cause, during testing, specific elements of test data to replace specific elements of real-time data.
[00078] [00078] In addition, according to some modalities, the markers are configured to be deleted after the test.
[00079] [00079] Also, according to some modalities, the markers are indicative of an instruction to ignore the data in real time, specific correspondents during the test.
[00080] [00080] Additionally, according to some modalities, the method is performed by a server configured to provide a website hosting environment to host a plurality of websites generated by a plurality of users.
[00081] [00081] Furthermore, according to some modalities, the test data is created in an area of at least one common database hidden in the site deployment environment.
[00082] [00082] Certain modalities of the present disclosure refer to a computer-based system for simultaneously running test data from a visual application system in a non-public test environment, while also running real-time data from the visual application system in a deployment environment, the computer-based system comprising: at least one common database that stores real-time data from the visual application system and test data from the visual application system, where the test data is associated in at least one database common to real-time data; and at least one processor configured to: access real-time data from the visual application system stored in at least one common database; use the real-time data accessed from the visual application system in the deployment environment; receive a request to run tests on the visual application system while the visual application system is active in the deployment environment; access, at least in a common database, a test data set responsive to the request, the test data set including one or more test data elements corresponding to the respective real-time data elements, where the set test data is not accessible in the implementation environment; and while the visual application system is active in the deployment environment, test the visual application system in parallel in the non-public test environment, so that the test data set and real-time data are used simultaneously by the visual application in the Public Test Environment.
[00083] [00083] In addition, according to some modalities, the computer-based system is at least one between a website development system and a source code development system.
[00084] [00084] Certain modalities of this disclosure include a computer-readable medium containing instructions that, when executed by at least one processor, cause at least one processor to execute certain instructions to update a back-end database containing data sets that populate a plurality of web pages on a website. Instructions can perform operations to receive, via user interface, a plurality of data elements, data elements organized into one or more groups of at least one data element, each group for display on a separate web page from a website ; store groups of at least one data element in a database; generate a plurality of virtual web pages, where each virtual web page is a preview of a corresponding actual web page before the corresponding actual web page is activated, where each of the corresponding actual web pages is not designed with functionality to update the database; display each group of at least one data element in a group separate from the plurality of virtual web pages; display an editing tool to allow a user to edit a virtual web page from the plurality of virtual web pages; convert edits to the virtual web page into updates to the database; store updates in the database; and enable, during a real-time display of a corresponding real web page associated with the virtual web page, a display of the corresponding real web page with updates made to the virtual web page during preview.
[00085] [00085] Furthermore, in some embodiments, each of the plurality of virtual web pages is displayed within a frame associated with a user interface editor interface.
[00086] [00086] In other modalities, the operations display a user-selectable resource that allows the user to browse through the plurality of virtual web pages to individually and dynamically display each of the plurality of virtual web pages.
[00087] [00087] In additional modalities, the operations display a user selectable resource that allows the user to select a specific virtual web page from the plurality of virtual web pages based on a specific virtual web page identifier.
[00088] [00088] In additional modalities, the identifier of the specific virtual web page is based on a data element associated with the specific virtual web page.
[00089] [00089] Furthermore, according to some modalities, operations include associating a unique URL to each of the various virtual web pages.
[00090] [00090] In additional modalities, each of the plurality of virtual web pages is generated based on a site map that references the unique URL of each of the plurality of virtual web pages.
[00091] [00091] According to some modalities, the editing tool is configured to receive edits in the stored groups of at least one data element in the database.
[00092] [00092] Furthermore, in some modalities, the editing tool is configured to receive edits in attributes of the plurality of virtual web pages.
[00093] [00093] In additional modalities, the editing tool is configured to receive edits to the code that is used to generate the plurality of virtual web pages.
[00094] [00094] In additional modalities, the editing tool is configured to display a plurality of segments of the skeleton code that represents the actual code used to generate the plurality of virtual web pages and receive editions of the skeleton code that are translated into editions in the actual code.
[00095] [00095] Furthermore, in some modalities, data elements are received via the user interface from an external source.
[00096] [00096] In additional modalities, operations also include accessing a software-based router associated with the plurality of virtual web pages and configuring the software-based router to generate a different version of each of the plurality of virtual web pages based on one or more segments of a received URL.
[00097] [00097] In some embodiments, a subset of each group of at least one data element is organized by a repeater function, the repeater function generating one or more displayed instances of the subset of each group of at least one data element.
[00098] [00098] Furthermore, the additional modalities include a real-time display of the corresponding real web page that includes one or more instances.
[00099] [00099] Also disclosed in this document are computer-implemented methods for updating a back-end database containing data sets that populate a plurality of web pages on a website. The method may comprise receiving via the user interface, a plurality of data elements, the data elements organized in one or more groups of at least one data element, each group for display on a separate web page of a website; store groups of at least one data element in a database; generate a plurality of virtual web pages, where each virtual web page is a preview of a corresponding actual web page before the corresponding actual web page is activated, where each of the corresponding actual web pages is not designed with functionality to update the database; display each group of at least one data element in a group separate from the plurality of virtual web pages; display an editing tool to allow a user to edit a virtual web page from the plurality of virtual web pages; convert edits to the virtual web page into updates to the database; store updates in the database; and enable, during a real-time display of a corresponding real web page associated with the virtual web page, a display of the corresponding real web page with updates made to the virtual web page during preview.
[000100] [000100] In some embodiments, each of the plurality of virtual web pages is displayed within a frame associated with a user interface editor interface.
[000101] [000101] Additionally, in other modalities the method also comprises displaying a user-selectable resource that allows the user to browse through the plurality of virtual web pages to individually and dynamically display each of the plurality of virtual web pages.
[000102] [000102] In additional modalities, the method also comprises displaying a user-selectable resource that allows the user to select a specific virtual web page from the plurality of virtual web pages based on an identifier of the specific virtual web page.
[000103] [000103] In additional modalities, the identifier of the specific virtual web page is based on a data element associated with the specific virtual web page.
[000104] [000104] In addition, in some modalities, the method also includes associating a unique URL to each of the plurality of virtual web pages.
[000105] [000105] In additional modalities, each of the plurality of virtual web pages is generated based on a site map that references the unique URL of each of the plurality of virtual web pages.
[000106] [000106] Additionally, in some modalities, the editing tool is configured to receive edits in the stored groups of at least one data element in the database.
[000107] [000107] According to the additional modalities, the editing tool is configured to receive edits in attributes of the plurality of virtual web pages.
[000108] [000108] In additional modalities, the editing tool is configured to receive edits in the code that is used to generate the plurality of virtual web pages.
[000109] [000109] Still additionally, in some modalities the editing tool is configured to display a plurality of segments of the skeleton code that represents the actual code used to generate the plurality of virtual web pages and receive edits in the skeleton code that are translated in edits to the actual code.
[000110] [000110] In additional modalities, data elements are received via the user interface from an external source.
[000111] [000111] The additional disclosed modalities refer to a system to allow dynamic edits on web pages to update a back-end database containing data sets that populate the web pages. The system may include an online database configured to store a plurality of data elements for display on a plurality of web pages, the data elements organized into one or more groups of at least one data element, each group for display on a separate web page from a website, each separate page with no functionality to update the online database; and at least one processor configured to perform operations. Operations can provide instructions remotely to a browser to provide an interface displaying an editable version of a first web page generated based on a group of at least one data element, allowing the user to edit at least one data element; convert edits received through the interface in the editable version of the first web page into updates to the online database; store updates in the online database; and activate, during a real-time display of the first web page, a display on the first web page with updates made to the editable version of the first web page.
[000112] [000112] The additional modalities include an operation to generate a plurality of separate editable versions of web pages, in which each separate editable version of a web page is displayed within a frame associated with an interface editor interface.
[000113] [000113] Certain modalities of this disclosure refer to a system for viewing dynamic web pages through an online editor interface. The system can include an online database configured to: store a plurality of data elements for display on a plurality of web pages; and store the first instructions to allow the organization of data elements into a plurality of groups, each among the plurality of groups, including at least one data element and being associated with at least one distinct web page, and each of the plurality of groups still being able to be used by at least one front-end code executable by a browser and back-end code executable by a remote back-end server of the browser to configure a plurality of scrollable virtual web pages; and at least one processor configured to: remotely provide second instructions to the browser to display an interface to allow a user associated with the browser to include data elements in the database, associate each data element added to at least one among the plurality of groups and modify at least one of the front-end and back-end codes; execute third instructions to generate, based on the user's added data elements, association of data elements added with at least one between the plurality of groups and modification of at least one of the front-end and back-end codes, the plurality scrollable virtual web pages; wherein the plurality of scrollable virtual web pages is configured to be independently generated by at least one processor and edited independently by the user; and provide fourth instructions remotely to the browser to display a preview interface configured to display the plurality of scrollable virtual web pages prior to the generation of the corresponding final web pages, the preview interface allowing the user to selectively scroll the plurality of virtual web pages with scrolling through each of the multiple groups of at least one data element and view how groups of at least one data element will appear on a corresponding final web page before the corresponding final web page is activated.
[000114] [000114] According to some modalities, the system can provide additional instructions to the browser remotely to display the online editor interface to allow the user to drag and drop on a web page template a selection of at least one construction element to associate at least one website building element to one of the data elements to build a front end of the corresponding final web page.
[000115] [000115] In addition, according to some modalities, the system includes a web page template which is a dynamic web page template configured to include adjustable data components to display the corresponding final web page associated with each of the plurality of groups.
[000116] [000116] Furthermore, according to some modalities, the system may include a visualization interface configured to be displayed in the browser within a frame associated with the online editor's interface.
[000117] [000117] In addition, according to some modalities, the system may include a plurality of scrollable virtual web pages, displayed in a frame associated with the online editor interface.
[000118] [000118] In addition, according to some modalities, the system may include a viewing interface that may include a user-selectable resource, allowing the user to scroll through the plurality of scrollable virtual web pages.
[000119] [000119] In addition, according to some modalities, the system includes a viewing interface that can include a user-selectable feature that allows the user to select a specific virtual web page to display based on an identifier of the respective web page virtual.
[000120] [000120] In addition, according to some modalities, the system may include identifiers for the respective virtual web pages based on a data element stored in the database.
[000121] [000121] In addition, according to some modalities, the system can associate a unique URL to each of the plurality of groups
[000122] [000122] In addition, according to some modalities, the system includes a plurality of scrollable virtual web pages that can be generated based on a site map referencing the unique URL of each web page.
[000123] [000123] In addition, according to some modalities, the system includes the database which may include a centralized online database configured to store data associated with a plurality of sites generated by users from a plurality of remote users.
[000124] [000124] In addition, according to some modalities, at least one distinct web page is indexable by a search engine.
[000125] [000125] In addition, according to some modalities, the system can include at least one front-end code and back-end code configured to perform a function of a software-based router.
[000126] [000126] In addition, according to some modality, the software-based router may be able to configure at least one distinct web page in several different ways, based on a plurality of possible URL segments provided by the user.
[000127] [000127] In addition, according to some modalities, the system can include at least one front-end code and back-end code associated with at least one distinct web page.
[000128] [000128] In addition, the system can include at least one front-end code and back-end code associated with a specific software-based router.
[000129] [000129] Furthermore, the plurality of groups can be associated with at least one of a website that comprises a plurality of distinct web pages and an associated group of websites.
[000130] [000130] In addition, according to some modalities, the system may include a subset of the plurality of data elements organized by a repeater function, the repeater function generating one or more displayed instances of the subset of the plurality of data elements.
[000131] [000131] In addition, according to some modalities, the one or more instances can be part of the visualization interface configured to display the plurality of scrollable virtual web pages.
[000132] [000132] Certain modalities of the present disclosure refer to a method implemented by computer to view dynamic web pages through an online editor interface. The method may include storing a plurality of data elements for display on a plurality of web pages; and store the first instructions to allow the organization of data elements into a plurality of groups, each among the plurality of groups, including at least one data element and being associated with at least one distinct web page, and each of the plurality of groups still being able to be used by at least one front-end code executable by a browser and back-end code executable by a remote back-end server of the browser to configure a plurality of scrollable virtual web pages; remotely provide second instructions to the browser to display an interface to allow a user associated with the browser to include data elements in the database, associate each data element added to at least one among the plurality of groups and modify at least one of the codes front-end and back-end; execute third instructions to generate, based on the user's added data elements, association of data elements added with at least one between the plurality of groups and modification of at least one of the front-end and back-end codes, the plurality scrollable virtual web pages; wherein the plurality of scrollable virtual web pages is configured to be independently generated by at least one processor and edited independently by the user; and provide fourth instructions remotely to the browser to display a preview interface configured to display the plurality of scrollable virtual web pages prior to the generation of the corresponding final web pages, the preview interface allowing the user to selectively scroll the plurality of virtual web pages with scrolling through each of the multiple groups of at least one data element and view how groups of at least one data element will appear on a corresponding final web page before the corresponding final web page is activated.
[000133] [000133] According to some modalities, the method includes providing additional instructions remotely to the browser to display the online editor interface to allow the user to drag and drop on a web page template a selection of at least one construction element to associate at least one website building element to one of the data elements to build a front end for a web page.
[000134] [000134] In addition, according to some modalities, the web page template is a dynamic web page template configured to include adjustable data components to display the corresponding final web page associated with each of the plurality of groups.
[000135] [000135] Furthermore, according to some modalities, the viewing interface is configured to be displayed in the browser within a frame associated with the online editor's interface.
[000136] [000136] Certain modalities of the present disclosure refer to a system for navigating between dynamic web pages, the system comprising an online database storing a plurality of data elements for display on a plurality of dynamic web pages. The database can also store first instructions to allow the organization of data elements into a plurality of groups, each among the plurality of groups, including at least one data element and being associated with at least one among the plurality of pages dynamic web pages and each of the plurality of groups still being able to be used by at least one front-end code executable by a browser and back-end code executable by a remote back-end server of the browser to configure the plurality of dynamic web pages; where each of the plurality of dynamic web pages is configured to be generated and edited independently. The system can also include at least one processor configured to: remotely provide second instructions to the browser to display a navigation interface as part of at least one among the plurality of dynamic web pages, the navigation interface configured to allow a user to browse selectively each of the plurality of dynamic web pages automatically generated based on each of the plurality of groups of at least one data element, where the navigation interface is not a native element of the plurality of dynamic web pages.
[000137] [000137] In addition, according to some modalities, the system can perform at least one search on the plurality of dynamic web pages, browsing by selecting a dynamic web page through a displayed resource, scrolling sequentially through the plurality of web pages and going directly to the next, previous, first, last, checked page or another specific page.
[000138] [000138] In addition, according to some modalities, dynamic web pages have a determined order based on a site map.
[000139] [000139] In addition, according to some modalities, the system may include a navigation interface configured to be displayed on the browser within a framework dissociated from other aspects of the plurality of dynamic web pages.
[000140] [000140] Certain modalities of this disclosure refer to a system for hosting a website implemented in a server environment. The system can include at least one hosting server configured to co-host a plurality of sites generated by a plurality of users, the hosting server including common hosted editing tools accessible to the plurality of users to allow each of the plurality of users selectively alter specific sites generated by each of the plurality of users, the hosting server being further configured to prevent at least part of the plurality of users from altering specific co-hosted sites generated by others of the plurality of users; at least one processor configured to generate an interface, for display by at least a subset of the plurality of users, to allow at least a subset of the plurality of users to load into the hosting server's plug-in code associated with the plug-ins for the specific hosted co-sites generated by at least a subset of the plurality of users, the plug-in code for at least one specific plug-in, including at least one among: executable front-end plug-in functionality code by a customer; or back-end plug-in functionality code executable on a plug-in server; memory to store the plug-in code loaded by the user associated with at least one specific plug-in, so that the plug-in code loaded by the stored user is centrally hosted in a common domain with the specific co-hosted sites generated the plurality of users, where a single instance of at least one specific plug-in is shared by a plurality of specific co-hosted sites; and where, for each of several specific sites hosted together that share at least one loaded plug-in, the at least one processor is still configured to safely enable, using an isolation mechanism, at least one of the following: execution the functionality code of the front-end plug-in on the client; or execution of the functionality code of the back-end plug-in on the plug-in server; where, based on the isolation mechanism, any malicious code contained in at least one loaded plug-in is prevented from affecting others from the plurality of specific sites co-hosted on the hosting server.
[000141] [000141] According to some modalities, the plug-in server and the hosting server included in the system are the same server.
[000142] [000142] In addition, according to some modalities, the system may include an isolation mechanism that allows the execution of the back-end plug-in functionality code on the plug-in server, which is separate from the hosting server .
[000143] [000143] Furthermore, according to some modalities, the system may include an isolation mechanism that allows the execution of the functionality code of the back-end plug-in in a virtual machine.
[000144] [000144] In addition, according to some modalities, the system may include an isolation mechanism that allows the execution of the functionality code of the back-end plug-in in a docker container.
[000145] [000145] In addition, according to some modalities, the system may include an isolation mechanism that allows the execution of the functionality code of the back-end plug-in through an isolated process on the plug-in server.
[000146] [000146] In addition, according to some modalities, the system in which the system may include an isolation mechanism includes in the execution of the functionality code of the front-end plug-in in a secure sub-region of a specific website with - guest.
[000147] [000147] In addition, according to some modalities, the system can establish a secure communication channel to control communications between the sub-region of the specific co-hosted site and other sub-regions of the specific co-hosted site.
[000148] [000148] In addition, according to some modalities, the system may include a secure communication channel configured to restrict the access of at least one loaded plug-in to other aspects of the specific co-hosted site.
[000149] [000149] In addition, according to some modalities, the system may include a secure communication channel that is created using a configurable application programming interface to limit the interaction between at least one loaded plug-in and the specific co-website. hosted.
[000150] [000150] In addition, according to some modalities, the system may include an isolation mechanism that allows the execution of the front-end plug-in functionality code through an iframe in a client browser, in which the iframe is configured to function as a secure sandbox for executing the front-end plug-in functionality code.
[000151] [000151] In addition, according to some modalities, the system can associate the functionality code of the plug-in front-end executable by the client with sub-regions of web pages separated from a specific co-hosted site.
[000152] [000152] In addition, according to some modalities, the system can associate two or more trusted plug-ins to a specific co-hosted site.
[000153] [000153] In addition, according to some modalities, the system can allow at least one loaded plug-in to communicate and control at least one component of the specific web page hosted together on which its plug-in functionality code front-end is executed.
[000154] [000154] In addition, according to some modalities, the system can co-host the plurality of specific sites co-hosted on a shared platform accessible to the plurality of users.
[000155] [000155] In addition, according to some modalities, the system may include at least one loaded plug-in that is isolated from cookies associated with a web page of a specific co-hosted website.
[000156] [000156] Certain modalities of the present disclosure refer to a method implemented by computer to host sites implemented in a server environment. The method may include co-hosting, on a hosting server, a plurality of sites generated by a plurality of users; make common editing tools available to the plurality of users to allow each of the plurality of users to selectively alter specific sites generated by each of the plurality of users; prevent at least part of the plurality of users from altering specific co-hosted sites generated by others from the plurality of users; generate an interface, for display by at least a subset of the plurality of users, to allow at least a subset of the plurality of users to load into the hosting server's plug-in code associated with the plug-ins for the specific hosted co-sites generated by at least a subset of the plurality of users, the plug-in code for at least one specific plug-in, including at least one among: front-end plug-in functionality code executable by a customer; or back-end plug-in functionality code executable on a plug-in server; store the user-uploaded plug-in code associated with at least one specific plug-in, so that the stored user-loaded plug-in code is centrally hosted on a common domain with the specific co-hosted sites generated by the plurality users, where a single instance of at least one specific plug-in is shared by a plurality of specific co-hosted sites; and for each of several specific sites hosted together that share at least one loaded plug-in, securely enable, using an isolation mechanism, at least one of the following: running the front-end plug-in functionality code In the client; or execution of the functionality code of the back-end plug-in on the plug-in server; where, based on the isolation mechanism, any malicious code contained in at least one loaded plug-in is prevented from affecting others from the plurality of specific sites co-hosted on the hosting server.
[000157] [000157] According to some modalities, the method can include at least one loaded plug-in that is isolated from cookies associated with a web page of a specific co-hosted website.
[000158] [000158] Additionally, according to some modalities, the plug-in server and the hosting server are the same server.
[000159] [000159] Still additionally, according to some modalities, the method may include an isolation mechanism that allows the execution of the back-end plug-in functionality code on the plug-in server, which is separate from the hosting server .
[000160] [000160] Additionally, according to some modalities, the method may include an isolation mechanism that allows the execution of the functionality code of the back-end plug-in in a virtual machine.
[000161] [000161] In addition, according to some modalities, the method may include an isolation mechanism that allows the execution of the functionality code of the back-end plug-in in a docker container.
[000162] [000162] Furthermore, according to some modalities, the method may include an isolation mechanism that allows the execution of the functionality code of the back-end plug-in through an isolated process on the plug-in server.
[000163] [000163] Still additionally, according to some modalities, the method may include front-end plug-in functionality code executable by the client and which is configured to generate a user interface in a browser iframe.
[000164] [000164] It should be understood that the previous general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. BRIEF DESCRIPTION OF THE DRAWINGS
[000165] [000165] The attached drawings, which are incorporated and constitute a part of this specification, illustrate various modalities and, together with the description, serve to explain the principles disclosed. In the drawings:
[000166] [000166] FIG. 1 represents an exemplary online website construction system interacting with other systems and components, in accordance with some of the modalities of this disclosure.
[000167] [000167] FIG. 2 represents an exemplary online website construction system, in accordance with some of the modalities of this disclosure.
[000168] [000168] FIG. 3 illustrates a path for the execution of the back-end code associated with a trigger, according to some modalities of the present disclosure.
[000169] [000169] FIG. 4 represents an exemplary online editor interface for updating back-end functionality, in accordance with some of the modalities of this disclosure.
[000170] [000170] FIG. 5 is a block diagram showing an exemplary dynamic web page in development mode, according to some modalities of the present disclosure.
[000171] [000171] FIG. 6 is a flowchart that illustrates a method of developing back-end functionality, according to some of the modalities of the present disclosure.
[000172] [000172] FIG. 7 is a flowchart that illustrates a method to trigger the execution of back-end code, according to some modalities of the present disclosure.
[000173] [000173] FIG. 8 represents a block diagram of a web server execution instance system on demand, according to some modalities of the present disclosure.
[000174] [000174] FIG. 9 represents a schematic diagram of the interaction between various components of the web server execution instance system on demand, according to some modalities of the present disclosure.
[000175] [000175] FIG. 10 is a flowchart that illustrates a method for responding to a web request sent to a website, in accordance with some of the modalities of this disclosure.
[000176] [000176] FIG. 11 is an illustration of an on-demand web server instance system for determining whether a website is hosted and generating and instantiating web server instance instances, in accordance with some of the modalities of this disclosure.
[000177] [000177] FIG. 12 represents the instantiation of the elements of the instance of execution of the web server with a website, according to some modalities of the present disclosure.
[000178] [000178] FIG. 13 represents the monitoring of the loading of hosted sites and the management of instances in use, according to some modalities of this disclosure.
[000179] [000179] FIG. 14 represents the number of monitoring instances of web server execution available for hosting, according to some modalities of this disclosure.
[000180] [000180] FIG. 15 represents an exemplary website real-time testing system, in accordance with some of the modalities of this disclosure.
[000181] [000181] FIG. 16a represents a schematic diagram of the deployment environment's access to data elements, according to some modalities of the present disclosure.
[000182] [000182] FIG. 16b represents a schematic diagram of the test environment's access to data elements, according to some modalities of the present disclosure.
[000183] [000183] FIG. 17 is an illustration of access to the website for real-time and test data in a test environment, according to some of the modalities of this disclosure.
[000184] [000184] FIG. 18 represents the generation of test data used in a test environment for test sites, according to some modalities of this disclosure.
[000185] [000185] FIG. 19 is a flowchart that illustrates a method for accessing a website in a deployment environment, according to some of the modalities of this disclosure.
[000186] [000186] FIG. 20 is a flowchart that illustrates a method for accessing a website in a test environment, according to some of the modalities of this disclosure.
[000187] [000187] FIG. 21 is a flowchart that illustrates a method for handling data requests in a test environment, according to some of the modalities of this disclosure.
[000188] [000188] FIG. 22 is a flowchart that illustrates a method for dealing with reading requests in a test environment, according to some of the modalities of this disclosure.
[000189] [000189] FIG. 23a is a flow chart of a method for updating data elements in a test environment, in accordance with some of the modalities of this disclosure.
[000190] [000190] FIG. 23b is a flow chart of a method for updating data elements in a deployment environment, in accordance with some of the modalities of this disclosure.
[000191] [000191] FIG. 23c is a flow chart of a method for adding data elements in a test environment, according to some of the modalities of the present disclosure.
[000192] [000192] FIG. 24 is a flowchart that illustrates a method for excluding data elements from a test environment, according to some modalities of this disclosure
[000193] [000193] FIG. 25 illustrates an overlapping process to generate the results of the test data query, according to some modalities of the present disclosure.
[000194] [000194] FIG. 26 is a flowchart that shows the steps involved in editing a database while viewing the website, according to some of the modalities of this disclosure.
[000195] [000195] FIG. 27 is a system for the development and visualization of web pages, according to some modalities of the present disclosure.
[000196] [000196] FIG. 28 is a block diagram of a virtual web page, according to some modalities of the present disclosure.
[000197] [000197] FIG. 29 is a timeline display of dynamic updating of web pages, according to some modalities of this disclosure.
[000198] [000198] FIG. 30 represents a block diagram of a dynamic visualization system, according to some modalities of the present disclosure.
[000199] [000199] FIG. 31 illustrates a visualization of a virtual web page being edited, according to some modalities of the present disclosure.
[000200] [000200] FIG. 32 is a schematic diagram that describes a relationship between data groups and sites, according to some modalities of the present disclosure.
[000201] [000201] FIG. 33 is a schematic diagram that describes the components involved in the generation of virtual web pages, according to some modalities of the current disclosure.
[000202] [000202] FIG. 34 is a flowchart that shows the steps involved in viewing virtual web pages, according to some of the modalities of this disclosure.
[000203] [000203] FIG. 35 is a schematic diagram of users who interact with the website hosting system, according to some of the modalities of the present disclosure.
[000204] [000204] FIG. 36 represents controlled access to co-hosted sites, in accordance with some of the modalities of this disclosure.
[000205] [000205] FIG. 37 represents groups of co-hosted sites sharing plug-in code on common routes, according to some modalities of this disclosure.
[000206] [000206] FIG. 38 represents execution environments isolated from the back-end plug-in code, according to some modalities of the present disclosure.
[000207] [000207] FIG. 39 represents controlled access and the execution of the front-end plug-in code, according to some modalities of the present disclosure.
[000208] [000208] FIG. 40 represents the isolated execution on the client side of the plug-in code, according to some modalities of the present disclosure.
[000209] [000209] FIG. 41 is a flowchart that shows the steps involved in accessing and executing the website code and the plug-in, according to some of the modalities of this disclosure.
[000210] [000210] FIG. 42 is an example of a user interface for editing a web page and creating a database collection, according to some of the modalities of this disclosure.
[000211] [000211] FIG. 43 is an example of a user interface for editing a web page and configuring permissions for a database collection, according to some of the modalities of this disclosure.
[000212] [000212] FIG. 44 is an example of a user interface for editing a web page and entries in a database collection, in accordance with some of the modalities of this disclosure.
[000213] [000213] FIG. 45 is an example of a user interface for editing a web page and displaying the result of a database collection, in accordance with some of the modalities of this disclosure.
[000214] [000214] FIG. 46 is an example of a user interface for editing a web page and creating a repeating function, according to some of the modalities of this disclosure.
[000215] [000215] FIG. 47 is an example of a user interface for editing a web page and showing the result of a repeating function, according to some of the modalities of this disclosure. DETAILED DESCRIPTION
[000216] [000216] In the following detailed description, numerous specific details are presented in order to provide a complete understanding of the disclosed example modalities. However, it will be understood by those skilled in the art that the principles of exemplary modalities can be practiced without all the specific details. The known methods, procedures and components have not been described in detail in order not to hide the principles of the exemplary modalities. Unless explicitly stated, the sample methods and processes described in this document are not restricted to a specific order or sequence, nor to a specific system configuration. In addition, some of the described modalities or elements of them can occur or be executed simultaneously, at the same point in time or simultaneously. Reference will now be made in detail to the disclosed modalities, examples of which are illustrated in the attached drawings. Unless explicitly stated, sending and receiving, as used here, is understood to have broad meanings, including sending or receiving in response to a specific request or without a specific request. These terms therefore cover active forms and sending and receiving liabilities.
[000217] [000217] The systems and methods consistent with the present disclosure are directed to the website creation systems, including personalized front-end and back-end functionalities. In some embodiments, website creation systems may include options for configuring the user's development capabilities for back-end functionality.
[000218] [000218] FIG. 1 represents an exemplary system interacting with other components and users through a network, according to some modalities of the present disclosure. As shown in FIG. 1, the website building system (WBS) 100 includes the WBS 110 editor, which can be a tool for creating and editing websites. The WBS 100 may also include a WBS content management system (CMS) 120, which may be a repository of widgets and other tools used in building websites, databases or similar data, code or data storage structures that represent sites built or under development, and data created, updated and viewed using the sites created or under development (such as, for example, the inventory of a virtual store underlying an e-commerce site).
[000219] [000219] The WBS 110 editor can be an editor for building and editing websites. The editor may allow sites and pages on the site to be built starting with a blank canvas or based on pre-developed sites, sections or pages of the site (known together as templates) that can be stored in the WBS CMS 120. The editor WBS 110 can define the visual layout and other attributes of the pages of a website being built. Templates can define the web pages belonging to the website being built and their initial content. The WBS 110 editor can also include a user interface section to determine the layout of the site, defining navigation between multiple pages. The WBS 110 editor defines the layout of a page, allowing users to place components on web pages the way they prefer real web pages to appear.
[000220] [000220] In some modalities, as discussed further below, the WBS 100 can host individual websites and pages through virtual machines, container instances or serverless code. These techniques can improve load times and reduce user latency. For example, in a situation where a site integrates back-end or front-end code that must run or include specific site components, that code and components can be loaded into stateless server execution instances the first time. that these instances are associated with a request made by a browser (for example, Web Browser 131) for a given website. These stateless server instances can then be reused for additional browser requests involving the same website. In addition, it offers the benefit of allowing the WBS 100 to use its server resources based on the actual requests being served, which is much more efficient than using dedicated web service execution instances (such as servers, VMs or containers) and infrastructure.
[000221] [000221] Building Tools 121 may include widgets, which are components arranged on pages being edited by the WBS Editor. In some embodiments, widgets may include applications developed by the user who creates the web page, other users, the WBS vendor itself or third party application vendors. Applications can come from repositories like the WIX APP MARKET. Examples of widgets include simple widgets (such as text fields, shapes, etc.) or complex widgets (such as calendars, form generators, image editing, video editing, visitor counting, social media embedding, etc.)
[000222] [000222] WBS CMS 120 can store the two components for building sites and sites that have been built. In some embodiments, the components and sites are maintained in separate CMS systems. As shown in FIG. 1, Building Tools 121 stored on WBS CMS 120, which includes widgets and other tools that assist in the easy construction of a website.
[000223] [000223] Building Tools 121 are the building blocks of a website that facilitate the process of building and adding content to a website. Building Tools 121 can include component tools or widgets, as discussed earlier, such as guides, search bar, buttons, gallery, slide decks, etc., as well as operational tools such as alignment tools. Building Tools 121 can include simple widgets (for example, buttons, text fields, etc.) and complex widgets (for example, gallery, calendar widgets, etc.) and are configured to perform advanced functions. Building Tools 121 can be represented as an abstraction of the code representing widgets and other tools. Building Tools 121 may include standard public tools offered to all users of the system and private tools offered exclusively to a specific site or user. Private tools can include public tools that have been customized for the user or the website or new tools. Private tools can be created by the user of the system that creates the website or by third parties. Building Tools 121 can be shared between multiple sites created by different user groups and belonging to different user groups. Building Tools 121 can also be customized by editing the existing Building Tools 121 code (for example, updating a button style sheet to create a new style sheet for a new button). Custom construction tools can be stored together with the original construction tools 121 in the system area database 122.
[000224] [000224] The WBS 110 editor provides remote access to the Building Tools 121 stored in the System Area Database 122 of the WBS CMS 120. An instance of a selected Building Tools 121 widget can be created when a user places a widget on pages being edited by the WBS Editor 110. An instance of a widget selected in Building Tools 121 can be created by referencing the widget on the page. An instance of a widget selected in Building Tools 121 can also be created by copying the code that represents the selected widget to the web page of the website being built.
[000225] [000225] WBS Editor 110 is software that is usually hosted on a server, while some or all of its elements can be loaded to run on the viewing device 130 of the user's website (or in your Web Browser 131). In some embodiments, the WBS 110 Editor can share the system area database 122 with Building Tools 121 or share a common server. However, in other modalities, WBS Editor 110 and System Area Database 122 are hosted separately.
[000226] [000226] The System Area Database 124 stores the sites created using the WBS Editor 110. As shown, Site 123 is a site that is being built using the WBS Editor 110 and stored in the Area Database site 124. Site 123 stored in Site 124 Area Database may include text representing code and data that can be accessed, updated and viewed using Site Development Device 140. Site 123 may include one or more pages web pages, including indexable web page 125. In some embodiments, for example, one or more indexable web pages 125 share the same common domain (for example, http://www.my-site.com), subdomain ( for example, http://my-site.wix.com/) or URL prefix (for example, http://www.wix.com/wixsites/my-site/). Indexable web page 125 can include front-end 126 and back-end 127. Indexable web page 125 can include a special file or code, including or referencing front-end 126 and back-end 127, or it can be just a name for the front-end 126 and back-end 127 collection, as indicated by a dashed line. Front-end 126 may consist of widgets and other elements of the user interface, which may be instances of Building Tools 121, including instance-specific information (such as position, size and attribute values); This instance-specific information can also include containment information (that is, which components are contained in which containers). Front-end 126 can also include code elements, such as code segments to be executed in front-end 126 (possibly affecting widgets at run time). Front-end 126 can also be composed of other elements, such as page metadata, titles, etc.
[000227] [000227] Front-end 126 includes instances of Construction Tools 121 placed on the indexable web 125 of Site 123, created using WBS Editor 110, such as those that are always visible to a user, are visible by default or visible at least one part of the time. Back-end 127 represents functionality that can be activated when a user interacts with front-end 126 or through non-interaction events, such as an incoming communication to Site 123, a time-based trigger or a change in the bank of data connected to Site 123. Back-end 127 can be seen only a few times or never seen by the user of the website development device 140 and the WBS 150 vendor team device. Front end 126 and back-end 127 can be stored in the database of the site area 124 as code or structured data (for example, XML, JSON, JSON-LD etc.). The code can be stored in textual format or compiled object code. The code representing front-end 126 and back-end 127 can be in the same programming language or in structured data format. In some modalities, the code that represents back-end 127 and the code that is part of FE 126 is converted into a different programming language before saving it in the Database of the site area 124.
[000228] [000228] In some embodiments, Site 123 code and data may share a database or may have separate databases. In some embodiments, the code that represents front-end 126 and back-end 127 can be stored in the Database of site area 124 as plain text in a database table. In other embodiments, the code can be stored as file objects and can store a location of the file in the site area database 124. In some embodiments, the code is stored in a single location in a column of the database. site area 124 or in a file. In some embodiments, the code can be divided among several files.
[000229] [000229] In some embodiments, indexable web page 125 can be a dynamic web page and front end 126 can be a template and not the actual web page. As discussed further below,
[000230] [000230] In some embodiments, WBS 100 may include more or less of the components shown in FIG. 1. For example, databases 122 and 124 can be a single database or separate databases. Databases can be a distributed set of databases. Both database 122 and 124 can be relational databases, object-oriented databases, data language file repositories (for languages such as XML or JSON) or No SQL databases. In addition, databases 122 and 124 can be maintained on a local network (for example, local area network, with Internet access), on a cloud-based network (for example, public or private cloud architecture) or a hybrid of a local and cloud-based network.
[000231] [000231] As shown in FIG. 1, Site 123 stored in a site area database 124 on WBS CMS 120 can be accessed by the site display device 130 (for example, desktop computer, tablet, laptop, smartphone etc.) via a web browser 131 A user (not shown) of the Site Viewing Device 130 can request access to Site 123 via Network 160 (for example, the Internet, including intermediary networks between Site Viewing Device 130 and WBS 100). Web Browser 131 (for example, APPLE SAFARI, GOOGLE CHROME, MOZILLA FIREFOX, MICROSOFT EXPLORER etc.) of Web Viewing Device 130 can be used to view Site 123 and the data created and edited using Site 123. The Website development device 140 can be used to build Site 123 using WBS 110 Editor. Web Browser 141 on Website development device 140 can be used to make a request to access WBS 110 to build Site 123 The WBS 150 supplier team Device can be used to provide customer support for a user (not shown) of Site Development Device 140 when creating and maintaining Site 123. The WBS 150 supplier team device also can be used by third-party vendors to create and customize Construction Tools 121. The WBS 150 vendor team device can also be used to configure the WBS 100 itself, for example example, to manage the website designer and user accounts, to manage the website or page templates described previously (create new ones or edit existing ones) or to manage the various elements that comprise the WBS 100.
[000232] [000232] In some embodiments, Site Display Device 130, Site Development Device 140, and WBS Supplier Team Device 150 may be physically different devices. In other modalities, they can be viewed differently accessed from the same device using different credentials and / or different functions. In some embodiments, the web browser 131, 141 and 151 can be the same browser or different browsers on the same device or on different devices or different tabs on the same browser.
[000233] [000233] Site Display Device 130, Site Development Device 140 and WBS Supplier Team Device 150 can access Site 123 via Network 160. In some embodiments, Site Display Device 130, website development 140 and WBS 150 vendor team device can be a mobile device, laptop, desktop computer, tablet etc.
[000234] [000234] As shown in FIG. 1, Search Engine 170 (for example, GOOGLE, YAHOO, BING etc.) can access the indexable web page 125 of Site 123, stored in the database of site area 124 via network 160, with or without interaction with WBS 100. Search Engine 170 can index the indexable web page 125 of Site 123 to facilitate discovery and thus increase the number of users using the site viewer 130 to view the Site
[000235] [000235] FIG. 2 represents an exemplary structure for WBS 100, according to some modalities of the present disclosure. As shown in FIG. 2, WBS 100 includes site area database 124, including components for building and hosting sites, as discussed previously in conjunction with FIG. 1.
[000236] [000236] In some embodiments, the indexable web page 125 can be a dynamic or virtual web page where the front-end components 126 can be filled with data from the Data Group
[000237] [000237] Data elements 210 can be associated with DB 220 of URL associations. When a user accesses Indexable Web Page 125 of Site 123 using Web Viewer 130 by typing a URL, the URL (or a segment thereof) can match the URLs or URL segments stored in the URL Association DB 220 For reference. Data groups can be associated with a URL or segment in the URL association DB 220. A URL or URL segment in the URL association DB 220 can help determine the data group to be used in generating the virtual page, or dynamic using the associated indexable webpage 125. In some embodiments, the indexable web page 125 is a model of a dynamic or virtual web page and the actual web page is generated using the data in Data Group 210 by determining using a URL in the URL Association DB 220.
[000238] [000238] Data elements 210 can be determined using a software-based router, which analyzes a URL (or URL segments) entered by a user or otherwise provided to access a website 125 web page using the device web view 130. Analysis by the UEL software-based router may result in a key to access Data Element 211 in Data Group 210. For example, with the URL http://mysite.wix.com/users/ 20, a software-based router can parse the URL to determine whether the prefix “users” is associated with the data group and the suffix “20” is the key resulting in the search for a data element in the data group associated with “users” , identified by a key value “20”. As described here, a software-based router can be configured to analyze the suffix of a URL or a parameter within a URL to determine which version of a web page or which content on a web page should be displayed. All of the above options can be applied to URLs that are not entered directly by the user, but that are received by the system (for example, URLs automatically generated by another page or code associated with the page on the site). The system can also support multiple software routers defined simultaneously, with the website creation system 100 performing an initial analysis of a received URL to determine which of the defined software routers to use. This analysis can make its determination based on the received URL, based on the definitions included in the URL associations DB 220 or based on additional information or conditions (such as system environment conditions).
[000239] [000239] First instructions 240 are a set of instructions accessed by Web Browser 141 and can be configurable through Processor 260. First Instructions 240 help Web Browser 141 remotely access a library of stored tools, including construction
[000240] [000240] Web Browser 141 is used to build Site 123, displaying Navigation Interface 242 to navigate between different parts of Site 123 and Online Editor Interface 213 to edit the accessed part of Site 123. The code that represents the WBS Editor 110 on the WBS 100 can be transmitted to Web Browser 141 to display Navigation Interface 242 and Online Editor Interface 243.
[000241] [000241] FIG. 3 illustrates a path for the execution of the back-end code associated with a trigger, according to some modalities of the present disclosure. As shown in FIG. 3, a trigger 310 may result in the execution of the code associated with backend 127. A trigger 310 may occur, for example, when a user of a Web Viewing Device 130 interacting with the Indexable Web Page 125 of Site 123 executes a specific action (for example, a click on the mouse or touchpad, a selection, a mouse cursor, a reload request, text entry, multimedia content upload, etc.). A Trigger 310 can also occur during a non-interaction event. For example, periodic actions based on time or database updates can result in a trigger and code execution from the back end 127 and / or the front end 127. Trigger 310 can be customizable and can take many different forms. In addition, the interactions that need to result in the execution of the code related to the back-end 127 can be done through a programmable Event 320. Programmable Event 320 passes control to the back-end 127 for execution through a hook that connects the front-end 126 and back-end 127. The type of hook used to pass control between programmable Event 320 and back-end 127 can be configurable and can also be dependent on the type of interaction or other type of event that caused o Trigger 310. Programmable Event 320 uses one or more Data Hooks 330, Web Hooks 340 or Data Link Router Hook 350, among other possible types of hooks, to pass control to back end 127 to execute the code in it.
[000242] [000242] Data Hook 330 can be used to pass control of programmable Event 320 to back-end 127 when any data update is entered by a user
[000243] [000243] Web Hook 340 can be used to pass control of programmable Event 320 to back end 127 when a web module function is imported and called in code that is part of front end 126. In some modalities , for example, code that is part of front-end 126 is called a front-end script and is executed when a user of the web viewing device is interacting with the front-end components of Indexable Web Page 125 Site 123 displayed in Web Browser 123. For example, Web Hook 340 can be based on a user of Indexable Web Page 125 using an application, making a purchase, subscribing to content on Indexable Web Page 125 etc.
[000244] [000244] Data Link Router Hook 350 can be used to pass control of Programmable Event 320 to backend 127 when a specific dynamic web page is requested by a Web Viewing Device 130 user navigating to a particular URL in Web Browser 131. You can browse, for example, by entering a URL in the address bar of Web Browser 131, clicking on a hyperlink on an indexable Web Page 125 of Site 123 being viewed in Web Browser 131 or performing an operation that automatically navigates to a predefined or programmatically generated URL. Data Link Router Hook 350 helps determine the Data Group 210 and back-end 127 code function to be performed to apply Data Element 211 from Determined Data Group 210 to a web page template defined in the function in the back-end code 127.
[000245] [000245] In some embodiments, the Hook of the data link router 350 can work together with a software based router. For example, if a user accessing the Indexable Web Page 125 enters a URL to the Indexable Web Page 125, a software-based router can determine what data will be displayed on the Indexable Web Page 125 or until a specific page to be displayed . A router can be associated with a prefix that can be the first part of a URL (or with another segment of the URL). For example, at the URL http://www.wix.com/label, “label” can be the prefix. In addition, in the URL http://www.wix.com/label/sub-label, “sub-label” can be a suffix. Based on the specific segment (for example, prefix, suffix or value of a parameter) of the given URL, the router can determine that the content associated with one or a specific page associated with both should be displayed. For example, the prefix can be associated with a router, while a suffix can be passed to the selected router to determine which page to access or which to use on the page. Routers can also be used to generate complete virtual or dynamic pages based on selected data and a model. In this way, the Indexable Web Page 125 of Site 123 can be dynamic and customizable based on the way users interact with it.
[000246] [000246] The Data Link Router Hook 350 can also function to pass control based on internal events after user interaction with Site 123 on Site Viewer 130. For example, the Link Router Hook 350 data can be registered to perform a function before determining a routing to a page as previously described to verify that a user is allowed to access the routed page. Data Hooks 330 can optionally be run before or after Hooks on data link router 350 for the same Trigger 310. For example, a Data Hook 330 can be run after a query is run on the connected database to Site 123 to filter entries that are no longer active (for example, a commercial store site can filter products that are no longer sold from the database search query results). Thus, the system can support the operation of various combinations of hooks and the linking of hooks together.
[000247] [000247] FIG. 4 is a block diagram showing an exemplary dynamic web page 125 in development mode being accessed on a web development device 140 via web browser 141, in accordance with some of the modalities of this disclosure. As shown in FIG. 4, the Online Editor Interface 243 consists of the Unified Interface 410 and the Display Interface 420.
[000248] [000248] Unified Interface 410 can be used to develop or build Indexable Web Page 125 of Site 123. Unified Interface 410 can provide access to Building Tools 121, as discussed earlier. Building Tools 121 may include Editing Tools 411 to help edit Indexable Web Page 125 of Site 123. In some embodiments, Unified Interface 410 may be a separate section visible in a Web Browser 141 during development. In other embodiments, the Unified Interface 410 can be a collective name for the various tools and sections of the user interface. In some embodiments, the Unified Interface 410 can be a separate section of a displayed web page or a floating window or frame. In some embodiments, the components of the Unified Interface 410 may float within a section of Web Browser 141.
[000249] [000249] Front-end 126 and back-end 127 can be shown or represented in an editing mode together or in separate windows. In some modalities, they can be shown only one at a time. In addition, back-end 127 may not be specific to the display of Web Page 125 or Site 123, and some or all of it may be shared between different sites and Site Developers. When a Programmer saves Site 123, the front end can be saved as front end 126.
[000250] [000250] The Viewing Interface 420 helps users to visualize the Site 123 being built by displaying the Web Pages 125 as in the real world, that is, as they would be shown in the Web Browser 131 on the Web Viewing Device 130 displaying the Virtual Web Page 421. Each Virtual Page 421 can be associated with a unique Identifier 422. In some embodiments, the unique Identifier 422 is a URL or segment of URL stored in the Database of the site area 124, along with other URLs 210. Other forms of Identifier 422 are also possible.
[000251] [000251] FIG. 5 is a block diagram showing an exemplary dynamic or virtual web page in development mode, according to some of the modalities of the present disclosure. For example, as discussed previously in conjunction with FIG. 4, the dynamic or virtual web page can be the virtual web page 421.
[000252] [000252] As shown in FIG. 5, Unified Interface 410 displays Building Tools 121 and Indexable Web Page 125. In this exemplary illustration, front-end 126 is shown using a WYSIWYG editor to visually edit the content of the page (for example, text, graphics, widgets, etc.). In some embodiments, front-end 126 can be edited directly as code. In some embodiments, Construction Tools 121 is a section of the user interface on Unified Interface 410. In other embodiments, Construction Tools 121 can be accessed via menu items in the Online Editor Interface 243. In some embodiment, the tools site construction tools selected in Construction Tools 121 can be dragged and dropped into front-end section 126 of Unified Interface 410. Front-end 126 of Indexable Web Page 125 shows the visual arrangement of Construction Tools 121.
[000253] [000253] In some embodiments, the back-end 127 is shown as a floating window within the unified Interface 410. In other embodiments, the back-end 127 could be a separate section similar to the front-end 126. The code representing the back-end 127 may be hidden and not be displayed unless requested. In some embodiments, the entire back-end code 127 is shown all the time, and in other embodiments, only the back-end code 127 associated with a single element of Construction Tools 121 is shown.
[000254] [000254] WBS 100 can be configured to automatically generate the skeleton code when selecting an element from Construction Tools 121 and when placing the element on the front end
[000255] [000255] FIG. 6 is a flowchart illustrating a Method of development 600 of back-end functionality 127, according to some modalities of the present disclosure. In some embodiments, Method 600 can be performed by components of the WBS 100, as discussed earlier.
[000256] [000256] As shown in FIG. 6, in Step 610, WBS 100 receives a request to access Building Tools 121 in the Site Area Database 124 of a user of Web Development Device 140 when the user makes a request for the development of Site 123 via Web Browser 141. As discussed earlier, Building Tools 121 examples include widgets, graphics, and other content.
[000257] [000257] In Step 620, WBS 100 transmits First Instructions 240 in a request from Website Development Device 140 via Web Browser 141. The request is received by WBS 100 via Network 160. The request is forwarded to site CMS 120. Site CMS 120 provides access to First Instructions 240, as requested by Processor 260 and is transmitted to Site Browser 141. First Instructions 230 provides access to Building Tools 121 stored in the Site Area Database 124 and that allow the creation of front-end 126 and back-end 127 of Web page 125.
[000258] [000258] In Step 630, WBS 100, upon receiving a request from Site Development Device 140 on a Network 160 to use a tool in Construction Tools 121, automatically generates the skeleton code for a tool selected in Construction Tools 121 based on the rules. For example, as discussed previously in conjunction with FIG. 5, the skeleton code can be associated with an event, such as a mouse click, float, content selection etc.
[000259] [000259] In step 640, WBS 100 can transmit the skeleton code to Site Development Device 140 to be shown in Web Browser 141.
[000260] [000260] In Step 650, WBS 100 can provide access to custom backend functionality 127 associated with Web Page 123 whose front end 126 is being edited or created. As discussed earlier, back-end functionality 127 can take many different forms and can be configured to occur based on a number of defined events.
[000261] [000261] In Step 660, WBS 100 can receive specifications from a user of Website Development Device 140 through Web Browser 141 to configure Programmable Event 320 to enable custom backend functionality 127.
[000262] [000262] In Step 670, WBS 100 can receive from the user of Website Development Device 140 through the editable code by Web Browser 141, implementing back-end functionality 127. The user can make edits to the code, such as change code functionality, update code, etc.
[000263] [000263] In Step 680, WBS 100 can store the edited editable code of the user in the Database of the site area 124, as received from the Development Device of site 140 through the Network
[000264] [000264] FIG. 7 is a flowchart that illustrates a Method 700 to trigger the execution of back-end code 127, according to some modalities of the present disclosure. Method 700 can be performed in conjunction with Method 600, as discussed earlier. Consistent with the previous discussion, Method 700 can be performed on the WBS 100 system.
[000265] [000265] As shown in FIG. 7, a user of a Website 130 Viewing Device can trigger 310 a programmable Event 320 associated with back-end 127, making the transition to an indexable Web Page 125, as shown in Step 711, when a user of the Viewing Device Site 130 interacts with Indexable Web Page 125, as shown in Step 712, or when the user enters an update to an Indexable Web Page 125 and results in Trigger 310, as shown in Step 713. For example, Step 711 may involve a user clicking on a nested hyperlink on the Indexable Web Page 125 associated with another part of the page on the same Site 123. Similarly, Step 711 may involve a user clicking on the “next” or “continue” hyperlink on the Page indexable web page 125 to view a subsequent related page. Step 712 may involve, for example, a user hovering over a graphic or text on the Indexable Web Page 125, pausing for a predefined period of time, clicking on an image or text on the Indexable Web Page 125 etc. Step 713 may involve the user updating the textual content on the Indexable Web Page 125, uploading an image or video file on the Indexable Web Page 125, filling out a form on the Indexable Web Page 125, a period timer resulting in certain actions , a database update, etc.
[000266] [000266] In Step 720, WBS 100, upon receiving notification of a programmable Event 320, accesses Trigger 310 in response that is associated with programmable Event 320. As discussed earlier, Programmable Event 320 can be based on several types of hooks, such as a Data Hook 330, Web Hook 340, Data Link Router Hook 350 or others. The hooks associated with programmable Event 320 may involve accessing internal data from a Site 123 (for example, WixData) stored in the Database of the site area 124.
[000267] [000267] In Step 730, WBS 100 can optionally retrieve data external to Site Area Database 124 and Remote Web Browser 141 (for example, from an external database, from another site, from a remote service etc.). In some embodiments, this data can be used as part of programmable Event 320.
[000268] [000268] In Step 740, WBS 100 can request Processor 260 to execute editable back-end code by the editable user
[000269] [000269] The systems and methods consistent with the present disclosure are also directed to website hosting systems on demand, including functionality for hosting websites, serving websites to customers, monitoring the website load and responding to the dynamics of the website loading . In some modalities, the executable instance on demand can monitor the activity of using the website and automatically activate or remove some or all of the execution instances. In addition, as discussed below, web server execution instances generated to serve sites or pages may include combinations of generic site code and specific or specific page code, resulting in responsive and very efficient site and page serving highly personalized and individualized.
[000270] [000270] In general, when users interact with websites, they can make a variety of HTTP requests. For example, an initial HTTP request can be made to load a web page (which can, in some situations, trigger additional HTTP requests to load additional elements of the page, such as images or scripts). In addition, a user can make HTTP requests in the middle of the session (for example, by selecting a value for a field, clicking on a hyperlinked image, etc.). In addition, a user can make an HTTP request related to data, such as by submitting a form. In addition, a user can make an HTTP request from the backend, which can activate the backend functionality (for example, through the backend code, as described here).
[000271] [000271] To speed up the process of loading pages and handling HTTP requests, the system (for example, WBS 100) can be configured to use the fast initialization of docker containers or serverless code configured for a specific website or page. In some modalities, as discussed here, a set of waiting containers or other virtual computing resources may be provided with all relevant code that is not site specific, but without any user specific or site specific code. The system can listen on an active port for a request to a server for a specific website. If there is an active container or other virtual computing resource associated with the specific website, the system can connect to it. Otherwise, the system can use a container waiting for the set and inject the specific content of the requested site into it or instruct it to load that content. After the site-specific content for a given site is loaded, the container joins a set of containers associated with the given site. As discussed here, content at the injected site level may or may not include the actual pages on the site. This site page information can be, for example, browser-ready page material (for example, a collection of HTML, CSS, and JavaScript code), underlying data for the site definition (for example, using XML files or JSON expressions ) that are converted to ready-made material by client-side or server-side code (such as a WBS viewer module) or front-end or back-end code (for example, JavaScript code invoked by the page to run on the client, at server or both).
[000272] [000272] FIG. 8 represents a block diagram of an on-demand web server execution instance System 800, according to some modalities of the present disclosure. As shown in FIG. 8, the On-Demand System 800 includes a Processor 260, Memory 820 to store sites currently or recently served, and Persistent Storage 830 to store all sites available to be served. In some embodiments, the On-Demand System 800 may also include or be associated with an 840 Proxy Server to help determine whether a new instance of web server execution is required to fulfill a website request.
[000273] [000273] The WBS System 100 and the System on Demand 800 store and access the code to edit and serve web requests, respectively. The WBS Editor 110 is used to display web pages of websites for editing requests, received from the Web Development Device 140. The web server execution instances are instantiated with code and page definitions created and edited using the WBS Editor 110 and stored in the Site Area Database 124 to display the Indexable Web Page 125 when editing Site 123, as well as at run time. In some modalities, the System on demand 800 can be a subsystem within WBS 100. In some other modalities, WBS 100 and System on demand 800 can share access to front-end 126 and back-end 127 of the Web page Indexable Site 125
[000274] [000274] Processor 260 can be associated with one or more servers that host System elements on demand 800. For example, Processor 260 can be associated with a single server or a coordinated collection (for example, farm) of servers. In addition, in some embodiments, each element (for example, each element in Memory 820, each element in Persistent Storage 830, Proxy server 840, etc.) may have its own processor 260 (for example, as part of a dedicated server ). Regardless of the number or type of Processors 260, each of the elements shown in the On-Demand System 800 is capable of functioning independently and in a coordinated manner.
[000275] [000275] The 820 memory can have one or more instances of web server execution to serve websites or pages to clients. Instances in use 821 can be web server running instances that are currently or actively serving websites. Available Instances 822, on the other hand, may be a set of web server instances available in Memory 820 that currently do not host any specific website, but are available for that purpose. In some embodiments, the number of instances of web server execution in the Available Instances 822 can be a constant number. In some other embodiments, the number of web server execution instances in the Available Instances 822 may vary and depend on the number of web server execution instances in the instances in use 821. For example, if there are a total of 10,000 instances of execution, an increase in the Instances in use 821 may mean a decrease in the Available Instances 822 and vice versa. The number of instances of web server execution in Available Instances 822 can also be a percentage of the number of instances of web server execution in Instances in use 821. Instances in use 821 may, in some embodiments, be represented by a data structure containing a unique identifier that identifies the web server's Running Instance 823 and other instances that currently serve websites. In some modalities, a similar data structure can be maintained per site hosted by the System on demand 800 and all of these data structures collectively represent the Instances in use 821.
[000276] [000276] A web server execution instance 823 can be one of the instances in use 821 that serves requests to a website with the help of a web server. The 823 web server execution instance can include the generic 824 site server code and the N 833 site specific code. The 824 site server generic code can, for example, be a common code included in all instances running the web server. For example, this common code can include underlying elements of the web server's running instance system (operating systems, web servers (for example, Apache), database servers, etc.). In some embodiments, it can also include a WBS 100 editor or runtime environment along with common external services and plug-ins. In addition, in some embodiments, the common code may include common elements of the server at the site application level, such as libraries and code related to the main common items, such as vertical applications WBS 100 etc. The common code can also include elements of common components (for example, galleries), especially for co-hosted sites discussed below. For all of the above, generic code can include real server-side elements (which can be stored and run on the server), as well as client-side elements (stored on the server and loaded in web page requests to the client run time of WBS 100 running). In some embodiments, different groups of sites may include different generic 824 site server codes. So, for example, a group of commonly owned sites may have the common 824 site server generic code. This can also apply, for example, to multiple sites based on the same vertical market application framework (for example, restaurants or hotels). Alternatively, different sites can have their own generic site server code 824, which can belong to all web pages on each site.
[000277] [000277] Site specific code N 834 can include the specific code for the site or page being served by the Instance of web server 823 execution (such as front-end code 126 or back-end 127 created by Programmer / Designer 1540 from site 126 to the specific site). The web server's Execution Instance 823 can serve a website or page that includes site specific code N 834 using a web server (for example, Apache, Tomcat, Nginx etc.) or a specific WBS server. Site specific code N 834 may include, for example, code to perform functionality unique to the site or specific page, such as shopping cart functionality, payment processing, database access, integration or running applications, functions or software-based routers and more. The discussion above and here refers to the specific site code 834 related to a particular site or page and, correspondingly, to the Instance of web server 823 execution, which can respond to requests from customers using the site or page provided . However, the System on demand 800 can be implemented at different levels of granularity of specific code. The typical level of granularity can be at the site level, that is, where the specific Code of dictate 834 covers an entire site, which is usually the ideal level for the reuse of the 823 web server execution instance. The system can be implemented using a level of granularity for a group of sites (for a group of very similar sites), entire site, section of site (that is, set of pages) and single page. For site groups, common parts of multiple sites can also be included in the Generic Code for Site Server 824, as noted earlier.
[000278] [000278] The Instance of the web server 826 of the Instances available 822 can be used to serve the same website provided by the Instance of the web server 823 of the Instances in use 821, injecting the specific code of the site N 833 into the Instance web server execution instance 826. In this way, the web server execution instance 823 can generate (and serve) individualized sites and pages based on the unique site specific code 834 associated with each site or page.
[000279] [000279] Persistent Storage 830 can include generic and specific code for all sites hosted by System On Demand 800 in First memory location 831 and Second memory location 832, respectively. The generic server code for site 824 can be stored, for example, in Persistent Storage 830 at First location of first 831. Site specific Code 833 and 834 can be stored in Second location of memory 832 and can be site specific 1 and N, respectively. Persistent Storage 830 can, in several ways, be a distributed file system, database or other storage system and can be cloud-based (for example, storage as a service). The first memory location 831 and the second memory location 832 can be in different locations on the same storage system or in different storage systems that together form the 830 Persistent Storage. In some embodiments, the Site specific Code 833 and 834 can be in different secondary memory locations or in the same location, but marked separately.
[000280] [000280] The generic server code for site 824 that resides in the first memory location 831 of Persistent Storage 830 can be copied to a web server running instance similar to Web server running instance 823 after the instance is launched . In this way, the generic server code for website 824, as well as any specific code for website 833-834, can be integrated to serve websites or pages that include common systems, web structures, libraries, components and plug-ins and individualized elements .
[000281] [000281] In several modalities, each of the components of Memory 820, Persistent Storage 830 and Proxy Server 840 can be implemented through a computer network on site, a computer network in the cloud or a hybrid network comprising the two architectures. Examples of cloud hosting environments may include AMAZON WEB SERVICES, MICROSOFT AZURE, IBM CLOUD and others, as well as proprietary cloud networks maintained by website hosting companies.
[000282] [000282] Proxy Server 840 helps to determine whether a set of Instances in use 821 includes a web server running instance available to fulfill a request for a website generated from a Web Browser 131 of the Web Viewer web 130. Proxy Server 840 determines, for example, the availability of a running web server instance, interacting with Memory 820. For example, Memory 820 can maintain a list of Available Instances 822 and Instances in use 821, you can search web server execution instances 823 and 826 to determine its current state, or you can receive other reporting information about the availability of a web server execution instance. In some embodiments, the 840 Proxy Server can handle HTTP requests (for example, from clients) to access a specific website or page and determine whether the specific website or page is already hosted by an 823 web server execution Instance. , in some embodiments, the Proxy Server 840 can maintain a State Table 941 for use in determining the state of the Available Instances 822 and Instances in use 821. This state table can identify these resources and the sites or pages they are already hosting .
[000283] [000283] FIG. 9 represents a schematic diagram of the interaction between the components of the System on demand 800, according to some modalities of the present disclosure. As shown in FIG. 2, the on-demand System 950 web server running instance manager manages the web server running instances, communicating with the web server running instances 823 and 826 and the Proxy Server 840. In In some ways, the web server execution instance manager 950 can determine whether new web server execution instances need to be added to the available instances 822. This can happen, for example, if there is an increase in traffic associated with a website or particular page being hosted. In some modalities, the increase in traffic load can be predicted based on prior knowledge inferred from periodic traffic information gathered for the site in the past. Past traffic information may include monthly, weekly, daily and hourly traffic data, collected to understand seasonal trends at other times with more active use of the site and automatically add more instances of web server execution that serve a specific site. In some other modalities, the web server execution instance manager 950 can determine whether an instance of the Instances in use 821 is inactive. In this situation, resources can be wasted, as the Instances in use 821 are in operation or operational, although there are no requests from customers to respond with websites or pages. Thus, as discussed further below, any inactive 821 Instances in use can be deactivated or closed. Similar to the process of adding new instances of web server execution to a website, predictions discussed earlier based on past usage information can be used to end instances when there is less traffic expected. The web server execution instance manager 950 may decide to add more instances to the set of available instances 822 and / or mark an instance in the instances in use 821 as inactive, delegating determination to proxy server 840. Proxy server 840, as noted earlier, you can include Status Table 941 to help determine whether to add or remove web server running instances from Instances in Use 821 and Available Instances
[000284] [000284] FIG. 10 is a flow chart illustrating a Method 1000 for responding to a web request sent to a website, in accordance with some of the modalities of this disclosure. Method 1000 in FIG. 10 identifies two paths for serving web requests received by the On-Demand System 800 from a Web Browser 131 on the Web Viewing Device 130. Any configuration requirements to fulfill the request may result in the copy of the requested site-specific code to an instance of the web server that fulfills the request to access a specific website.
[000285] [000285] As shown in FIG. 10, in Step 1010, the On-Demand System 800 stores the generic server code for site 824 in First memory location 831 of Persistent Storage 830. As discussed earlier, this may involve storing code common to a group of sites (for example, example, all that belong to a common owner or based on a common vertical site structure) or common to a group of pages on a site. In addition, generic site server code 824 can be associated with an arbitrary and defined grouping of sites or pages. As discussed earlier, the generic site server code 824 can include code that specifies common pieces of software from different layers, including operating systems, web structures, software libraries and website components and plug-ins, in addition to the publisher code and WBS 100 viewer.
[000286] [000286] In Step 1020, System On Demand 800 can store Site-specific Code N 834 in Second memory location 832 of Persistent Storage 830. As discussed earlier, Site-specific Code N 834 can be site-specific or specific web page. Site-specific code N 834 may include, for example, a widget, application, or custom back-end or front-end functionality. In addition, Site-specific Code N 833 can function as a router for a specific site or page, as discussed earlier, where one or more segments of a URL entered by a user or otherwise provided determines how the site or page you must assemble your content (for example, personalized images, text, hyperlinks, forms, e-commerce resources, personalized content, etc.).
[000287] [000287] In step 1030, the On-Demand System 800 can receive a request to access a website received from a Web Browser 131 on a Web Viewing Device 130. The On-Demand System 800 handles the request, verifying that the website or the requested page is currently being served by one or more instances of web server execution in the Instances in use 821. As discussed earlier, this may involve consulting the Instances in use 821 themselves, the Proxy Server 840 or obtaining a report from another service that monitors Instances in use 821. By referring to a lookup table or status table, the current operation (or lack thereof) of Instances in use 821 can be confirmed. In some embodiments, a single server can serve multiple sites or multiple clients on the same site and the traffic load and activity on a specific server can be tracked and taken into account when determining which server to use to respond to additional requests.
[000288] [000288] In Step 1040, the On-Demand System 800 checks whether the Web server execution instance 823 or other web server execution instances in the Instances in use 821 serve the requested website. If so, process 1000 can, in some modalities, skip to Step 1070, which is discussed below.
[000289] [000289] If the answer in Step 1040 is no, process 1000 can proceed to Step 1050. If none of the instances of execution of the web server in the Instances in use 821 serve the requested site, the request can be forwarded to an instance execution of the web server available in the Available Instances 822. In some modalities, one of the instances of execution of the web server in the Available Instances 822 can be selected to serve the requested website. In other embodiments, as shown in FIG. 10, the web server running instance 826 on the Available Instances 822 receives the service request.
[000290] [000290] In step 1060, a request can be sent to look for site-specific code 833 at Secondary memory location 832 corresponding to the requested site. For example, as illustrated, the specific Code 833 of Site 123 is the corresponding code if the request was received for Site 1. In some modalities, the specific Code of site 833 corresponding to the requested site is identified and copied to the Instance of execution web server
[000291] [000291] FIG. 11 is an illustration of a System on demand 800 to determine if a website is hosted and to generate or instantiate instances of execution, according to some modalities of the present disclosure. As shown in FIG. 11, Proxy Server 840 is used to determine the steps for handling a request to access Site 123 received by Network 160 from Web Browser 131 from Web Viewing Device 130. This determination may result in the Manager handling the request immediately the web server running instance 950 or instantiating a web server running instance on the Available Instances 822, using the specific site code requested before handling the request.
[000292] [000292] As shown in FIG. 11, in Step 1110, the On-Demand System 800 can receive a request from Site 123 over a Network
[000293] [000293] In Step 1120, the On-Demand System 800 determines the best way to serve the requested Site 123. As discussed earlier, the determination may include identifying whether a request can be handled by a current set of Instances in use 821 or whether an additional web server running instance is required. For example, the On-Demand System 800 may determine that the current load on Instances in use 821 has exceeded a usage limit (for example, limit number of instances, amount of bandwidth used, percentage of bandwidth used, level of use of server resources such as memory or processor power, etc.). In that case, it can be determined that one or more available instances 822 must be created or used to satisfy the demand of the particular site or page. In addition, as discussed earlier, the On-Demand System 800 can attempt to predict a future load status for the Instances in use
[000294] [000294] In Step 1121, as part of the determination process, the On-Demand System 800 can pass control to the 950 web server execution instance Manager along with the request for Site 123 (for example, a copy of request or request information). The request can be a request to access a Site 123 indexable web page, a form submission, or several other types of requests.
[000295] [000295] In Step 1122, web server execution instance manager 950 can delegate determination to proxy server 840 to help determine how to handle the request to serve Site 123. This can involve types of decision making previously discussed, including a determination of the current state of the load associated with Site 123, future load projections for the site, etc.
[000296] [000296] In step 1123, Proxy Server 840 can refer to Status Table 941 on Proxy Server 840 for instances in Instances in use 821 that can serve the requested site. In some modalities, the query in the State Table 941 may involve the observation of a column called “Site” 1143 in the table for a corresponding website URL. Other identifiers (for example, URL, account name, arbitrary name, etc.) are also possible. In some modalities, Step 1122 occurs periodically, even when the On-Demand System 800 has not received a request to serve a website - since the On-Demand System 800 can periodically monitor loading levels based on historical traffic trends of the website and can automatically rotate or shut down web server execution instances, except when the current traffic trend suggests otherwise. In some embodiments, the Web Server Execution Instance Manager 950 is forwarded to the Site 123 request after a failure to handle the request, indicating that a Web Server Execution Instance is not available to fulfill the Site 123 request.
[000297] [000297] In Step 1123, Proxy Server 840 can send a request to a web server running instance on Available Instances 822 to choose the first available 826 web server running Instance to be marked to serve the Site request 123. In other embodiments, the 826 web server execution instance can be chosen based on a policy that accounts for the differences between the 826 web server execution instances that make them suitable or more ideal for handling the request ( for example, geographic location, running applications, available memory, processing power, disk / memory fragmentation level, etc.).
[000298] [000298] In Step 1124, On-Demand System 800 selects a web server execution instance from the Available Instances
[000299] [000299] In Step 1125, the Instance of the web server 826 can be added to the set of Instances in use 121 by injecting the specific Code 833 of Site 123 in the Instance of the web server 826. In some modalities, the On -Demand System 800 can ask the Proxy Server 840 to update the State Table 941 with the entry of the Web Server Execution Instance 826. The State Table 841 can therefore change, including the addition of a line with the identifiers Instance 1142 and Site 1143 in the status table. In some embodiments, the first available instance, for example, 826 web server execution instance, can be selected to be injected with the 833 site specific code. After this injection, the 826 web server execution instance would be removed of the set of available instances 822.
[000300] [000300] In other modalities, the selection can be based on the geographic proximity of the location of the request for Site 123 or on the number of potential web requests that may originate from a given geographic location. In some embodiments, multiple instances of web server execution can be injected with Site-specific Code 123 833 and added to the set of Instances in use 821.
[000301] [000301] The 1120 determination to deal with the requested Site 123 may still have a timeout threshold (for example, 10 or 100 milliseconds). The timeout period may correspond to the overall web standard for serving requests for web pages. The web server running instances that are part of the Available 822 Instances help to reduce the time of activation instances when a new site request is made. The cold start problems of previous conventional site building systems are thus reduced.
[000302] [000302] In Step 1130, the Web Server Execution Instance 826 can fulfill the request for Site 123 using Site-specific Code 123 833. As discussed earlier, the serving of a site or page generated using Site-specific Code 123 833, the content of the website can be adapted to the user or to how the user arrived at the website (for example, using a software-based router). In some modalities, the injection stage itself can modify the injected material, for example, adapting it to the specific user / platform / device making the request or to other “environmental” conditions (country, language, database accessed, history user access, etc.). The client code that initiates the network request can add additional parameters or information to the network request, to allow the injection module to perform this adaptation. Additional information can be added directly (for example, as an added URL or other request parameters) or indirectly (for example, available through an additional request, prior storage in a database or other method).
[000303] [000303] FIG. 12 represents an instantiation of elements of server infrastructure with a website, according to some modalities of the present disclosure. The techniques of FIG. 12 can be practiced in the systems described above and described throughout this disclosure.
[000304] [000304] As shown in FIG. 12, Site 123 can be served through a web server execution instance, by copying the specific Code 833 from Site 123 to container 1221 or virtual machine 1222. In some embodiments, Site 123 can be served by a Separate operating system process 1223 (for example, via serverless code). Site 123 specific Code 833 can include front-end 126, back-end 127 and Plug-in reference code 1226, as discussed previously in conjunction with the custom back-end functionality that can be provided on sites . In some modalities, the front-end 126, the back-end 127 and the Reference code of the plug-in 1226 can be copied individually to Container 1221, Virtual machine 1222 or Process 1223. In some modalities, the generic Code from the site server 824 can be copied to Container 1221 or Virtual Machine 1222 (which would later include Site specific Code 123 833) as part of the instantiation of the Instance of execution of the web server 826.
[000305] [000305] In some modalities, the use of the On-Demand System 800, such as through a code implementation without a server, can improve the processing time and utilization of the server, reducing latency for users. In codeless server modes, there are no dedicated servers to manage. Instead, the code (for example, front-end 126, back-end 126 and Plug-in reference code 1226) can be provided as code and executed on demand in the cloud. To the extent that users are charged for executing the code, they may be charged in proportion to the actual execution of the code (instead of based on dedicated infrastructure costs or servers that must remain allocated to a given site while waiting for requests received) . Alternatively, this can substantially reduce the costs of an online WBS provider, allowing it to offer a better service to its users. In some embodiments, the On-Demand System 800 can define a set of programming languages or web structures that it supports for server-free code processing. The On-Demand System 800 can also support WebSockets, streaming or block communications, additional protocols (for example, TCP and UDP etc.), memory as a service functionality (for example, for stateless code functions, without side effects) and native serverless options (for example, Go, Rust, C etc.). By processing code without a server on demand, the problems of conventional website hosting systems (for example, going through a “cold start” to load instances of machines or websites) can be reduced. The start time for websites or pages (including any running code) can be less than 100ms, reducing latency and improving the user experience. On the other hand, some conventional systems experience a start time of websites or pages of approximately 600 ms to 2 seconds, including the functions of scheduling overload, starting an instance, starting a process (for example, code execution) and operation of the request handler.
[000306] [000306] Site Execution Instance 826 can serve multiple sites via Container 1221, Virtual Machine 1222 or Process 1223. In some embodiments, the Instance of web server 826 may have a set of Container 1221 features, Virtual machine 1222 and Process 1223 dedicated to it or available. Multiple Containers 1221, Virtual Machines 1222 and Processes 1223 can serve multiple sites. In some embodiments, Site Execution Instance 826 variants that can serve multiple sites can include a single Container 1221, Virtual Machine 1222, or Process 1223 that serves multiple sites. Container 1221, Virtual Machine 1222, and Process 1223, which serve multiple sites, may require that specific code from multiple sites be copied to serve multiple site requests.
[000307] [000307] FIG. 13 represents the techniques for monitoring the loading of hosted sites and the management of Instances in use 821, according to some modalities of this disclosure. These techniques can be practiced on the systems as previously described.
[000308] [000308] As shown in FIG. 13, the web server execution instance manager 950 (as discussed previously in conjunction with FIG. 11) monitors or communicates with Load Monitor 1310 to determine if any of the sites served by the On-Demand System 800 have a heavier load than desired or budgeted. As discussed earlier, this can be determined based on the current, previous or future load characteristics. In some modalities, the future load can be predicted based on prior knowledge, based on the periodic load gathered from the site / web server that hosts several sites in the past. The previous load can include monthly, weekly, daily and hourly to understand seasonal trends at other times with the most active use of the site and automatically add more instances of web server execution that serve a site or group of sites being served by a web server.
[000309] [000309] When the sites have a relatively lighter load, some instances are removed from the set of Instances in use 821 for a specific site and moved back to the available Instances 822. In some embodiments, the Load Monitor 1310 lists all 1311 sites hosted by the On-Demand System 800 and its Load 1312 in table form. In some embodiments, the Load Monitor 1310 table that lists the load from the Site may be part of the Status Table 941 managed or accessible by the Proxy Server 840. In some other modalities, the Load Monitor 1310 may be a separate table on the Server proxy
[000310] [000310] In some embodiments, the Instances in use 821 may be a collection of separate sets of instances that host some or all of the On-Demand System 800 sites. In some embodiments, sites 123 and 2, as illustrated, are the sites hosted by the On-Demand System 800. In various modalities, the Allocated Instances 1320 of Site 123 and the Allocated Instances of Site 2 are 1330 are the set of web server running instances of Site 123 and Site 2. In some modalities, the Instances allocated 1320 of Site 123 and the Instances allocated 1330 of Site 2 together are considered Instances in use 822.
[000311] [000311] The Load Monitor 1310 load table can be updated directly by the web instance running instance 950 Manager or can request the 840 proxy server to update it. In some embodiments, the Load Monitor 1310 load table is updated periodically by the 840 Proxy Server based on the number of access requests to 1311 Sites hosted by the On-Demand System 800. The Load Monitor 1310 load table can be updated based on other website usage statistics. For example, for a website with many multimedia features, usage statistics may include the use of memory and processor cycles to fulfill website requests, which involve converting video and audio into different formats, based on the device environment. used by use. The web server running instances of the Instances in use 821 are moved to the Available Instances 822 when the site they are hosting has a lower load. Likewise, when a site has a higher load, the instances of the web server running from the Available Instances 822 are Instances in use marked 821 and the site-specific code for the heavier-loaded site is injected into these executing instances. the web server.
[000312] [000312] In some modalities, based on the Proxy Server 840, noting that Site 123 has a lighter load, the On-Demand System 800 can cause the Instance of web server execution 826 to be moved from the Instances allocated 1320 from Site 123 to the set of Available Instances 822. In some embodiments, the Instance of web server 1323 is moved to Available Instances 822. In some modalities, multiple instances of web server execution are moved to the Available Instances 822 at the same time. Proxy Server 840, observing that Site 2 has a heavier load on Load Monitor 1310, can move the Instance of web server 1127 from the Available Instances 822 defined to the set of Instances
[000313] [000313] FIG. 14 represents the monitoring of web server execution instances available for hosting, according to some of the modalities of this disclosure. As shown in FIG. 14, the web server execution instance manager 950 monitors the number of available Instances 822. The web server execution instance manager 950 can launch new instances and add them to the set of available instances 822 when the number of instances of web server running in the set of Available Instances 822 is less than a threshold, as discussed earlier. The web server running instance manager 950 can end instances inversely in the set of available instances 822 when the number of web server running instances is greater than a threshold. These activation and deactivation techniques for execution instances may be responsible for the current, previous or anticipated future demand for specific sites or pages, as discussed previously.
[000314] [000314] In some embodiments, the web server execution instance manager 950 may wait for a certain period of time before activating new instances to ensure that inactive instances identified in state table 841 are not added back to the pool. Likewise, in some embodiments, the 950 web server execution instance manager may wait a while before closing available instances to ensure that an instance does not need to be injected with site specific code to handle a new request of site. Shutting down and running the instances can be a time-consuming process, and the web server's running instance manager 150 often avoids this, waiting after discovering that multiple available instances deviate from a limit number.
[000315] [000315] In some embodiments, the web server execution instance manager 950 spins and terminates the web server execution instances when the current number of instances in the set of available instances 822 differs from the limit by a specified number or percentage . This allows a range of values for the number of available Instances 822 to be present at any time. In other embodiments, the web server execution instance manager 850 can react immediately after deviating from a limit for rotation and shutdown instances.
[000316] [000316] FIG. 15 represents an exemplary website real-time testing system, in accordance with some of the modalities of this disclosure. As shown in FIG. 15, Site 1500 real-time test system includes Processor 260, Memory 820, Site area database 124 to store data used by sites, Deployment Environment 1510 that provides access to data related to a site accessed . In some embodiments, the Site 1500 Live Test System may also include the 1520 Test Environment, providing access to data related to a website accessed for testing purposes. Alternative terms can be used for testing / deployment, such as development / runtime, preparation / production and test / production.
[000317] [000317] In some embodiments, the On-Demand System 800 may be a subsystem included as a whole in the Real-Time Test System of Site 1500. In some of the modalities, the Real-Time Test System of Site 1500 may be partially composed or include the On-Demand System 800.
[000318] [000318] Deployment environment 1510 can be a set of software components running on a web server running instance on an On-Demand System 800.
[000319] [000319] The 1520 test environment can be a set of software components running on a web server execution instance on the On-Demand System 800. In some embodiments, a 1520 test environment is generated based on the type of device used to access a website. For example, Site 123 accessed through Web Browser 141 on Web Display Device 140 may result in the creation of Test Environment 1520, which may look and layout differently if Web Display Device 140 is a computer or phone mobile. In some other modalities, a 1520 test environment can be generated based on which user is accessing the website. For example, a 1540 Programmer / Designer requesting access to Site 123 may result in the creation of the 1520 Test Environment. In some modalities, a 1520 Test Environment can be shared between users. The 1520 test environment may be different for different users. In some embodiments, the Test Environment 1520 can be shared between multiple sites stored in the Site Area Database 124. In some modalities, an instance of the Test Environment 1520 can always be available and the Programmer / Designer 1540 can select from access a particular website through the Test Environment 1520 or Deployment Environment 1510.
[000320] [000320] The End User 1530 can access a website and its data in a 1510 Deployment Environment through Network 160. In some modalities, the End User 1530 can access Site 123 through the Web Browser 131 on the Site Viewing Device 130, consistent with the previous modalities.
[000321] [000321] Programmer / Designer 1540 can access a website and its data in a Test Environment 1520 through Network 160. Programmer / Designer 1540 can access Site 123 through Web Browser 141 on the Website Development Device 140. In some embodiments, Programmer / Designer 1540 can access Site 123 in Deployment Environment 1510 using Web Browser 131 on Web Display 130. It should be noted that Web Display 130 and Development Device 140 can be the same device.
[000322] [000322] End User 1530 and Programmer / Designer 1540 can have different functions for the same user accessing the Site
[000323] [000323] FIG. 16a represents a schematic diagram of a 1510 Development Environment for accessing data elements, according to some modalities of the present disclosure. As shown in FIG. 16a, Deployment Environment 1510 can request Processor 260 to help access data in real time
[000324] [000324] FIG. 17 is an illustration of access to the website for real-time and test data in a 1520 test environment, according to some of the modalities of this disclosure. As shown in FIG. 17, Indexable Web Page 125 of Site 123 is being accessed using Web Browser 141 on Web Development Device 140. Indexable Web Page 125 and associated data elements are being accessed by the Test Environment 1520.
[000325] [000325] Indexable web page 123 can access real-time data 1610 and test data 1620 as part of access to data elements associated with indexable web page 125. In some embodiments, all requests to access data elements data can first be sent to the 1620 test data. The 1620 test data can filter requests for access to the data element that can be handled by the 1620 remaining data itself before forwarding the requests to the 1610 real-time data.
[000326] [000326] FIG. 18 represents the generation of test data used in a 1520 test environment for test sites, according to some modalities of this disclosure. As shown in FIG. 18, real-time data 1610 is part of test data 1620. In some embodiments, the order of adding inserted marked data 1730 and deleted marked data 1740 may be different. The entered marked data 1730 and the deleted marked data 1740 can be traversed simultaneously to avoid adding something to the test data 1620 and, subsequently, exclude the same excluded marked in excluded marked data 1740.
[000327] [000327] The marked data entered 1730 and the marked data excluded 1740 may persist in the database of the site area 124. In some modalities, the marked data entered 1730 and marked data excluded 1740 may reside in Memory 920 until the session stops. accessing Site 123 in Test Environment 1520 is active. The marked data entered 1730 and data marked excluded 1740 can persist in the database of site area 124 when a session becomes inactive. For example, Programmer / Designer 1540 may explicitly request that the marked data entered 1730 and the marked data excluded 1740 remain in the Database of the site area 124. In some modalities, the marked data entered 1730 and the marked data excluded 1740 may share the same location in site area database 124. The entered data marked 1730 and the deleted data marked 1740 may persist based on the number of read requests. The data elements in the 1730 tagged data can selectively persist in the Site Area Database 124. The data elements can be persistently selected based on additional criteria, such as the number of times that a data element is requested to be read or the time when a data element in them has not changed or the number of sessions in which the data has been accessed.
[000328] [000328] FIG. 19 is a flowchart that illustrates a 1900 Method for accessing a website in a deployment environment, according to some of the modalities of this disclosure.
[000329] [000329] As shown in Step 1910. Data elements updated and added when accessing a website in Deployment Environment 1510 are stored in real-time data 1610 from Site Area Database 124.
[000330] [000330] In Step 1920, the real-time data 1610, stored in the Database of the site area 124 associated with an indexable page of a site accessed in the Deployment Environment 1510 are accessed by the Real Time Test System of the site 1500 , as part of serving a user's requested web pages.
[000331] [000331] In Step 1930, the data elements accessed in Step 1920 are applied to the indexable page to which they are associated to display the page in Web Browser 131 of Web Viewing Device 130 used by End User 1530.
[000332] [000332] FIG. 20 is a flowchart that illustrates a Method 2000 for accessing a website in a test environment, according to some of the modalities of this disclosure.
[000333] [000333] In Step 2010, Site 1500 Real-Time Test System may receive a request to perform the test on the site (for example, Site 123) stored in the common database (for example, Area Database site 124). In Step 2020, Site 1500's real-time testing system handles the data request made as part of a website's testing process using Test Environment 1520. For example, Site 123 can be tested by the Programmer / Designer 1540 accessing Site 123 using Web Browser 141 from Site Development Device 140. For example, Programmer / Designer 1540 can request Indexable Web Page 125 from Site 123 by entering the URL. In addition, in some embodiments, the URL can be specified by an application. The request includes the request to both the front-end 126 as well as the data elements of Data Group 210 associated with the indexable webpage 125 of Site 123. A read request for the data can be made as part of the process of accessing a web page.
[000334] [000334] As shown in FIG. 20, in Step 2030, the Site 1500 Live Test System checks whether the test is complete. In some instances, testing a website is considered complete if the website is accessed through the 1520 Test Environment for a specified period of time. The test can be considered completed after a number of requests for data. The test can also be considered complete when the Programmer / Designer 1540 accessing a website through the Web Browser 141 of the Website Development Device 140 closes the browser tab or window used to access the website. The test can also be considered complete when Programmer / Designer 1540 explicitly requests this from the Website 1500 Real-Time Test System. If the answer to Step 2030 is no, Method 2000 can return to Step 2010 and be ready to receive the next data request. If the answer to step 2030 is yes, Method 2000 can proceed to Step 2040. In step 2040, Method 2000 can apply changes made to the data elements and saved in the 1620 test data to the corresponding data elements in the data in real time 1610. Step 2040 can be optional, as Programmer / Designer 1540 can request, for example, that data changes incorporated in 1620 test data be discarded.
[000335] [000335] In Step 2050, all markers associated with updates to data elements made during the testing of Site 123 in Test Environment 1520 can be deleted.
[000336] [000336] FIG. 21 is a flowchart that illustrates a Method 2100 for handling data requests in a 1520 test environment, in accordance with some of the modalities of this disclosure. Method 2100 in FIG. 21 identifies one of the five exemplary ways to deal with the request to input data elements associated with a website accessed by a Programmer / Designer 1540.
[000337] [000337] As shown in FIG. 21, in Step 2110, Site 1500 Real-Time Test System receives a data request in Test Environment 1520. The data request is part of accessing a site for testing in Test Environment 1520. For example, a Programmer / Designer 1540 accessing Site 123 through Site Development Device 140 may trigger a request for Data Element 211 from Data Group 210 associated with Site 123.
[000338] [000338] In Step 2120, Site 1500's Real-Time Test System determines the type of request to access the data elements associated with a site being tested. The determination results in different types of requests being processed. The data request can be a read request to access the data elements associated with a website being tested by Developer / Designer 1540 when they request an indexable web page by entering a URL. In some embodiments, the data request can be a recording request to add a data element. For example, Programmer / Designer 1540 Test Site 123 can submit a form on the Indexable Web Page 125 requesting the creation of a new data element to be added to Data Group 210. The data request can be a request for update to change the content of a data element associated with the site being tested by Developer / Designer 1540. The data request can be a deletion request to remove a data element associated with a site being tested by Developer / Designer 1540.
[000339] [000339] In Step 2121, the Real-Time Test System of site 1500 determined in Step 2120 that the data request is to look for data elements associated with the site being tested by Developer / Designer 1540 or to look for the result of that operation search.
[000340] [000340] In Step 2122, the website's real-time test system
[000341] [000341] In Step 2123, the Real-Time Test System for Site 1500 determined in Step 2120 that the data request is to add data elements associated with the site being tested by Developer / Designer 1540.
[000342] [000342] In Step 2124, Site 1500's Real-Time Test System determined in Step 2120 that the data request must update the data elements associated with the site being tested by Developer / Designer 1540.
[000343] [000343] In Step 2125, the Real-Time Test System for site 1500 determined in step 2120 that the data request is to exclude the data elements associated with the site being tested by Developer / Designer 1540.
[000344] [000344] FIG. 22 is a flowchart that illustrates a Method 2200 for handling reading requests in a test environment, according to some of the modalities of this disclosure. Method 2200 in FIG. 22 identifies three ways to determine whether a data request needs to be answered and, if so, whether to use data elements in 1620 test data or real-time data
[000345] [000345] As shown in FIG. 22, in Step 2122, a data request received was determined in Method 2100 as a read request for data elements in the database for site area 124 and Memory 820.
[000346] [000346] In Step 2210, the real-time test system of site 1500 looks for the requested data element in test data 1620 and, when a match is found, it checks whether it is marked as deleted. If the answer in Step 2210 is yes, Method 2200 can proceed to Step 2120 and consider Method 2200 complete. In Step 2, no element message found is returned. For example, Programmer / Designer 1540 accessing Indexable Web Page 125 from Site 123 can send a request to Data Element 1741 for marked data excluded 1740 from test data 1620, resulting in the message “no data elements found” being returned.
[000347] [000347] If the answer in Step 2210 is no, Method 2100 can proceed to Step 2130. As shown in FIG. 22, in Step 2230, the real-time test system of site 1500 looks for the requested data element in marked data inserted 1730 of test data 1620.
[000348] [000348] If the answer in step 2230 is yes, Method 2200 can proceed to Step 2240. In step 2240, the requested data element is found in test data 1620 and is returned. The requested data element can be in marked data inserted 1730 of test data 1620, as previously added as a new data element. In addition, the requested data element can be in the entered 1730 marked data, as updated during the testing of a website previously. For example, the Programmer / Designer 1540 request to access data element of Contact two 1760 in Test environment 1520 will result in Data element 1732 in marked data entered 1730 of test data 1620 will be returned after Method 2200 executes Step 2240 The same data element when requested in the Deployment Environment 1510 can result in the return of Data Element 1752.
[000349] [000349] If the answer in Step 2230 is no, Method 2200 can proceed to Step 2250. In Step 2250, the requested data element is returned from real-time data 1610.
[000350] [000350] FIG. 23a is a flow chart illustrating a Method 2300 for updating data elements in a test environment, in accordance with some of the modalities of this disclosure. Method 2300 in FIG. 23a defines a location to store the updated data element requested when testing a website.
[000351] [000351] As shown in FIG. 23a, in Step 2124, a request for received data was determined in Method 2100 as a request to update a data element present in real-time data 1610 or marked data inserted 1730 from test data 1620 during the testing of a site.
[000352] [000352] In Step 2310, the real-time test system of site 1500 determines the location of the data element being requested to be updated, first checking the entered data 1730 of the test data 1620.
[000353] [000353] If the answer to Step 2310 is yes, Method 2200 will proceed to Step 2320. In step 2320, a corresponding data element being requested to be updated is updated.
[000354] [000354] If the answer to Step 2310 is negative, Method 2200 will continue to Step 2330, indicating that the data element requested for update has not been updated in the past and is present only in 1610 real-time data. data in real time data 1610 is copied to excluded marked data 1740 to prevent any future access to data in the Test Environment 1520.
[000355] [000355] In Step 2340, the real-time test system at site 1500 inserts the updated data element into the 1620 test data. In some embodiments, adding a data element involves adding an entry to the database and marking in a additional column that was added through the Test Environment. The data element inserted in the marked data entered 1730 of the test data 1620 of the Test environment 1620 cannot be accessed by requests in the Deployment environment 1610. For example, the Developer / Designer 1540 request to update Data element 1752 via Site 123 results in the insertion of Data Element 1732 in the marked data entered 1730 of the test data
[000356] [000356] FIG. 23b is a flowchart that illustrates another Method 2300 for updating data elements in a 1510 deployment environment, in accordance with some of the modalities of this disclosure. The method ensures that real-time data 1610 is available in real time for Developer / Designer 1540 testing a site using the 1520 test environment.
[000357] [000357] In step 2350, a request is received to update the data element in Implementation Environment 1510.
[000358] [000358] In step 2360, a data element in real-time data 1610 is updated as requested.
[000359] [000359] In Step 2370, a query request to identify the updated data element in the real-time data 1610 in Step 2360 is made in the deleted data marked 1740. A corresponding data element found in the deleted data marked 1740 has been updated or deleted in the 1520 test environment.
[000360] [000360] If the answer in Step 2370 is no, Method 2300 proceeds to Step 2380, where the task is considered completed and Method 2300 exits.
[000361] [000361] If the answer in step 2370 is yes, method 2300 will continue in step 2390. In Step 2390, the data element requested to be updated through the Deployment Environment 1510 is updated in deleted data marked 1740. This results in updating the data element in real-time data 1610 in the query results, as discussed in Process 2500 below.
[000362] [000362] FIG. 23c is a flowchart illustrating another Method 2300 for adding data elements in a test environment, in accordance with some of the modalities of the present disclosure. Method 2300 in FIG. 23c defines a location to store new requested data to be added when testing a website.
[000363] [000363] As shown in FIG. 23c, in Step 2123, a request for received data was determined in Method 2100 as a request to add a new data element not present in real-time data 1610 to test data 1620 when testing a site.
[000364] [000364] In Step 2392, the Real-Time Test System at site 1500 inserts the data element into the 1620 test data. In some ways, adding data involves adding an entry to the database and marking in an additional column that was added through the Test Environment. The data element inserted in the marked data entered 1730 of the test data 1620 of the Test environment 1620 cannot be accessed by requests in the Deployment environment 1610. For example, the Programmer / Designer 1540 may request to update the results of the Data element 1731 through Site 123 in the insertion of Data element 1731 in the marked data inserted 1730 of test data 1620.
[000365] [000365] FIG. 24 is a flow chart illustrating a Method 2400 for excluding data elements from a test environment, in accordance with some of the modalities of this disclosure. As shown in FIG. 24, the data element requested to be deleted may be displayed in the real-time data 1610 or may have been previously added via the Test Environment and is present in the entered marked data 1730.
[000366] [000366] As shown in FIG. 24, in Step 2125, a data request received was determined in Method 2100 as an exclusion request for data elements in the Database for site area 124 or Memory 820.
[000367] [000367] In Step 2410, the real-time test system of site 1500 can insert the requested data element to be excluded in the data marked 1740 excluded from the 1620 test data. Any data element, has been added or updated in the Environment test, can be added to 1740 excluded marked data, as all elements of 1740 excluded marked data can be ignored when a request for data elements associated with a site under test is made.
[000368] [000368] In Step 2420, a search for the requested data element to be deleted is searched for marked data entered 1730 of test data 1620. Process 2300 is considered complete if none of this data is found in test data 1620. For example , Programmer / Designer 1540 testing Site 123 in Web Browser 141 requests the deletion of results from Data Element 1741 in Data Element 1741 inserted into the deleted marked data 1740. Data Element 1741 is not present in the entered marked data 1730 indicates that no data needs to be removed and Process 2400 is considered complete. If the answer in Step 2420 is no, Method 2400 did not find marked data entered 1730, a data element requested to be deleted and Method 2400 proceeds to Step 2430, where the task is completed and Method 2400 exits.
[000369] [000369] If the answer in Step 2420 is yes, Method 2400 found in the 1730 marked data an element of data requested to be deleted. In step 2440, the data element of test data 1620 is removed from the entered marked data 1730.
[000370] [000370] FIG. 25 illustrates an overlapping process to generate the results of the test data query, according to some modalities of the present disclosure. As shown in FIG. 25, method 2500 is a four-step process that simultaneously accesses real-time data 1610, entered data 1730 and marked data excluded 1740 from the test data
[000371] [000371] As shown in FIG. 25, in Step 1, the data elements corresponding to the query are accessed from the real-time data 1610, marked data inserted 1730 and marked data deleted
[000372] [000372] The data elements are classified as requested in the query. In some modalities, data elements are classified by column “B” in 2510 in descending order. In some embodiments, the order may involve more than one column. In some modalities, when there is no requested order, a random column is chosen and classified in ascending or descending order. In some embodiments, a primary key is added to the columns used in the classification.
[000373] [000373] In Step 2, the system cycles through the data elements in real time data 1610, entered data 1730 and deleted data 1740 simultaneously to select the data elements to be included in the 1620 test data.
[000374] [000374] To determine the data elements to be included in the 1720 Test, an indicator is defined in the first element of the real-time data 1610, entered data 1730 and deleted data 1740. In some embodiments, the indicator is placed in the element lowest data base based on column “B.” The current lowest record in real-time data 1610, entered data marked 1730 and deleted marked data 1740 is compared to identify the lowest data element. The lowest value found can be present in several locations. For example, Data Element 2520 and 2530 are the lowest data elements in real-time data 1610 and deleted marked data 1740 and have the same content.
[000375] [000375] After the lowest data element is identified, it is determined whether a data element should be included in the 1620 test data based on the following rules. If the data element exists in real-time data 1610 and deleted marked data 1740, the data element will not be included in test data 1620. For example, Data element 2520 and 2530 has the same content and exists in the data in real time 1610 and in the deleted marked data 1740, indicating that the data element was requested to be deleted in Test Environment 1520 earlier when testing a site. It could also have been updated and Data Element 2560 was the resulting updated element.
[000376] [000376] If the data element exists only in real-time data 1610, it will be included in test data 1620. For example, Data element 2540 is present only in real-time data 1610, indicating that it has not been changed or excluded in the Test Environment when testing a site associated with Data Element 2540.
[000377] [000377] If the data element exists only in entered data marked 1730, it will be included in test data 1620. For example, Data element 2540 is present only in deleted data marked 1740, indicating that it has been inserted as a new data element or as part of updating Data Element 2520 when testing a site.
[000378] [000378] After a data element is added or skipped, only the data element sources that had the lowest data element have their indicators to be moved to the next data element. In some modalities, the indicators for real-time data 1610 and deleted marked data 1740 are moved to the next record after the first iteration of the route.
[000379] [000379] Upon reaching the last data element in all three data element sources, Method 2500 ends and test data 1620 is obtained. The fused table 2560 indicates the lowest data elements identified in each iteration of Step 2 discussed above. Only the sources that had the lowest data element are displayed filled in and the rest are left blank. For example, in the first iteration of Step 2, the lower Data Elements 2520 and 2530 have the same content as part of their respective real-time data sources 1610 and deleted marked data 1740 and deleted marked data 1740 are left blank, indicating that it does not have the lowest data element. Likewise, in the last iteration, only the marked data entered
[000380] [000380] FIG. 26 represents a flowchart showing the steps of a 2600 Method to edit a database while viewing the site, according to some of the modalities of this disclosure. Method 2600 can be practiced in the system environments described throughout this disclosure, such as those in FIGS. 1, 2, 15 and others.
[000381] [000381] As shown in FIG. 26, Step 2602 may involve receiving one or more groups of data elements (for example, from a user of a website creation system). Data elements, as discussed earlier, can include a variety of different types of content, or content records, that can be integrated into a website, such as text, images, videos, ads, database output views, etc. In some embodiments, data elements may also include a set of data objects (for example, two instances of text and an image). Each group can have one or more data elements. A group can thus define a related set of one or more elements. For example, a first website or page (for example, a web page identifier) can be associated with a group that comprises only text, a second website or page can be associated with a group that comprises data elements (each of which which comprise a text and three images), a third website or page can be associated with a group composed of data elements comprising text and video etc. Through a website editing interface, as discussed earlier, the user can identify which groups of data elements should appear or be associated with individual web pages on a website or with certain virtual page templates.
[000382] [000382] Data groups can, in some ways, be entities at the site level that can be used and reused on multiple pages of a site, or they can be entities at the owner level that can be used and reused by an owner of specific website. In addition, data groups can also be entities at the system level (for example, a database of postal codes, descriptions of geographical areas, etc.) or entities at the page level.
[000383] [000383] Method 2600 may also include a Step 2604 of storing the groups of one or more data elements in a Site Area Database 124, consistent with the previous modalities. Examples of such databases are described previously (for example, in conjunction with FIGS. 1, 2, 15 and others). Databases can be configured to maintain each group, maintain associations between groups and sites or pages or models of virtual pages and store other content and information. As discussed further below, when a user makes edits to a virtual web page during a preview mode, these edits can be converted to edits in the database in real time, thereby maintaining an updated database for each web page .
[000384] [000384] In addition, Method 2600 may include Step 2606 of generating one or more virtual web pages. Each of the virtual web pages can represent a data element (consisting of one or more objects) that can be displayed in preview mode (during development) before the actual website is launched or its updated parts are activated ( that is, become visible over the Internet to other users). To subsequently publish a virtual collection of web pages in active mode, the user can select an option entitled “Publish”, “Post” or something similar, which will make the site visible on the entire Internet (as publishing is usually done at the site and not for a single page). Once published, virtual pages (that is, instances derived from Webpage Template 2704) can behave similarly to regular (real) pages, although they are dynamically generated. In some embodiments, each of the actual web pages is not designed with functionality to update the database, while virtual web pages can be designed with that functionality. As an example, a hotel rental website can maintain five different virtual page templates for five different types of rooms available in a specific hotel (such as single bed, double bed, etc.). Each of the virtual page templates can be associated with its own set of data elements (that is, records for rooms of the specified type) and each room would have a virtual web page that can be displayed and editable during a view like a virtual web page.
[000385] [000385] In addition, Method 2600 may include Step 2608 of displaying each group of at least one data element in a separate set of virtual page sets. For example, in the previous hypothesis of a hotel website, while in preview mode, each of the five virtual web page templates corresponding to different types of hotel rooms can have their groups of data elements associated (for example, text different that describes the rooms, pictures of the rooms, videos of the rooms etc.). The sets of generated virtual pages (that is, instances) can be displayed to the user through a browser or another client, as discussed previously in conjunction with other techniques.
[000386] [000386] Method 2600 can also include Step 2610, which involves displaying an editing tool to allow a user to edit one or more templates and instances of virtual web pages. Templates can be edited as if they were regular pages. Instances can be editable only in preview mode, as they may not be visible as part of the regular process of browsing and editing the editor's page. In an alternative modality, the system may allow editing of instances as part of the regular website editing process. A variety of editing tools can be used, including rulers and grids (for example, to align data elements), drag and drop selectors (for example, to move data elements with a cursor), insert and edit hyperlinks, integration of widgets or applications (for example, from an app store), inserting and editing buttons, creating and editing text, inserting and editing images, inserting and editing videos, creating and editing slide shows, hover, background styles, repeaters (for example, that create multiple versions of a particular element or group of data), software-based routers (for example, that create a different version of a web page based on an element of the URL used to access it), and more. The system can display (and operate) a different subset of the editing tools available for models and instances and can also customize the subset of the displayed editing tool, depending on the user, virtual page model, specific instance, data group or underlying element etc. . As discussed further below, a user can make edits to the templates and instances of virtual web pages using the editing tools and the edits can be translated into edits in the database, maintaining component information and / or content for the pages. from the web.
[000387] [000387] Method 2600 can also include Step 2612 of associating a unique URL to each virtual web page. For example, a website can have a domain name (for example, wix.com) and each page on the website can have a different suffix (for example, wix.com/page1, wix.com/page2, wix.com/page3 etc.). In addition, in some cases, URLs associated with virtual web pages can have different paths (referring to files or directories) or parameter values. In some embodiments, a software-based router can be configured for the website or for individual web pages. The software-based router can be configurable, for example, to associate specific prefixes, paths, segments or URL parameters with specific web pages. Each of the web pages can be configured to extract different data from the database that stores data elements. In a JavaScript implementation, for example, a request for entry to a web page can be associated with an object that includes information about the request (for example, the URL, where it came from, who it came from, etc.). The software-based router can process this information and decide which (possibly virtual) web page to display and which data elements to include in it.
[000388] [000388] In addition, Method 2600 can include a Step 2614 of displaying a user-selectable resource (eg buttons, scroll bars, links, etc.), allowing the user to browse virtual web pages to display individual and dynamically each of the virtual web pages. In the previous example, therefore, the user-selectable feature can allow the user to view each of the five sets of web pages corresponding to different types of hotel rooms. Each page can be selected dynamically and viewed as a virtual web page.
[000389] [000389] Method 2600 may also include Step 2616 of receiving edits to one or more attributes of a user's virtual web page. For example, using the editing tool described above, a user can change the background of a page, the layout or template of a page, the applications or widgets embedded in a page, the URL prefixes or suffixes associated with a page , one-page repeater functionality, one-page software-based router functionality, or perform various other types of edits. Changes made to the 2704 web page template can be saved directly to the template page definition in the site area database 124. Changes made to the virtual page instances can be stored in a separate database, which should contain adaptations to the instances of the virtual page. Under this scheme, the adaptations must be indexed with a unique index of the specific instance of the virtual page (for example, in our hotel example, “Single room # 1234”). The adaptation would be retrieved and reapplied whenever this instance of the virtual page is generated for display (for example, during preview or during real-time display).
[000390] [000390] In some modalities, users are allowed to edit instances of virtual pages, but only in terms of their field information (for example, text, graphics, videos, etc.). For example, in such modalities, users may be prohibited from editing other elements (ie, other than content) of a virtual page instance, including layout, attributes, etc.
[000391] [000391] Method 2600 can also include Step 2618 of receiving edits to the data elements themselves. Such edits can be made directly in a data group view (that is, display user interface elements that allow you to browse and edit the groups and underlying data elements). Alternatively, this editing can be done by editing the content of the field in the virtual page instances generated related to the items. The system can activate this edition by adding (in preview mode) additional editing controls to the displayed virtual page instances (such as a “select alternative picture” button added to each displayed image originating from a data group). As discussed earlier, data elements can be stored in a database. Edits can include text editing, replacing or modifying images, replacing or modifying videos, changing the functionality of hovering over an element, and various other types of edits.
[000392] [000392] In addition, Method 2600 may include Step 2620 of receiving edits to the code associated with one or more virtual web pages. Examples of the code can be the front-end code and the back-end code described previously in conjunction with FIGs. 1 to 7. For example, the code can be related to the collection and storage of data and content in a database, creation of dynamic pages, implementation of user-oriented widgets and applications, repetition of data element layouts, configuration software-based routers and more. In some embodiments, in Step 2622, skeleton code segments can be generated to facilitate user edits to the code associated with the web pages. For example, the skeleton code can be high-level abstractions of functions associated with a more granular source code, which can implement the various types of front-end and back-end functionality described previously for web pages. The skeleton code can be displayed to users via the editing interface and users can make edits to it. User edits to the skeleton code can be converted to edits to the more granular actual code associated with the individual web pages. As for edits to the page attribute and page content / field content noted earlier, the system can support edits to Webpage Template 2704 (which are stored in the Site Area Database 124, possibly subject to sandboxing from development changes prior to publication) or to virtual page instances (which can be stored in the virtual page instance adaptations database). This is detailed in the description of steps 2630 and 2634 below.
[000393] [000393] In Method 2600, a Step 2624 can allow a user to select specific virtual web pages and a Step 2626 can allow a user to browse virtual web pages. For example, users can select pages individually by clicking on hyperlinks or other links associated with images or visual representations of the pages, or they can navigate pages visually (for example, by a toggle button left / right or up / down or by another selection of views).
[000394] [000394] According to method 2600, any edits to virtual web pages (for example, editing instances via steps 2616 or 2618) can be converted into updates to the database, keeping the data elements for the web pages in step 2828. For example, if a user replaces an image on a virtual web page with another image (for example, image uploaded by the user, etc.), the new image can be stored in the database. In addition, if the user replaces the text on the virtual page (for example, the description of a specific hotel room), the updated text can also be stored in the database. In some ways, updates to the database can be carried out automatically based on the user's edits on the virtual web page. Since the database is used to create the virtual web pages and is associated with the content of the virtual web pages, edits to the virtual web pages can be associated with the database used to build them. In some embodiments, multiple versions of the database are stored, at least temporarily, so that users can perform undo or reverse operations if they want to deny a change to a virtual web page they have made and return to an earlier version. For example, users can select an undo or revert option, or they can receive timestamps or version identifiers associated with previous versions of a virtual web page to which they can return and resume editing. This version system can also support changing the version of the development database that is not part of the published version until a publishing operation is performed. This is also known as “sandboxing” the development database.
[000395] [000395] Method 2600 can also include a Step 2630, in which any edits to the skeleton code made by the user are received. Additionally, in Step 2634, any edits to the actual code (for example, through Step 2620) or the skeleton code (for example, to Step 2630) can be translated into edits in the actual code of the web page. As described earlier, for example, users can make edits to the actual code or skeleton associated with various back-end or front-end functionality of virtual web pages. Such code edits can be stored in the same database that hosts the data elements for a virtual web page or a separate code database.
[000396] [000396] In addition, in Step 2632, Method 2600 may include enabling, during a real-time display of a real web page associated with a virtual web page, a display of web pages with updates made to the virtual web page during preview mode, including regular web pages and instances of virtual pages. As discussed earlier, for example, users can edit various features of a virtual web page during preview mode (for example, page structure, data elements, front-end code, back-end code, etc.) for models and instances. These edits can be translated into updates corresponding to page definitions or changes to data elements, which can be stored in the site area database 124 and / or in separate databases (for example, a database of elements database, an instance adaptation database and / or a separate code database on which the virtual page is based). These separate databases can also be hosted by WBS 100, for example, as part of Memory 820 or Persistent Storage 830. In addition, these edits can also be translated into corresponding updates to the active web page. In various modalities, virtual web pages and real web pages can be based on the same database or different databases (for example, linked). It should be noted that these databases
[000397] [000397] FIG. 27 is a 2700 system for the development and visualization of web pages, according to some modalities of the present disclosure. As discussed earlier, the 2700 system can be similar to or operate within the systems discussed in conjunction with FIGS. 1, 2, 15 and others. In some embodiments, the 2700 system may include a Site Area Database 124, which stores data elements and / or code for one or more 2704 web pages. As shown, several 2704 web pages can be maintained, each one of which can have its own corresponding data elements. As discussed earlier, data elements can be organized into Data Group 210 of one or more data elements. As noted earlier, this 2710 data group can be system-wide, site group specific, site specific, or page specific (typically for a given 2704 webpage template).
[000398] [000398] As shown in FIG. 27, site area database 124 can communicate over a network with a Web browser 131 or other client application, which can be operated by a user. Web Browser 131 can display a Virtual Web Page 2712 corresponding to each Web Page Template 2704 in Site Area Database 124 using data elements in Data Group 210. In addition, each virtual web page 2712 can be associated with a Data Element 211. Additionally, users can have a view of data elements individually (for example, Data Element 1 211 and Data Element 2 2718) as part of the data element group 2714. As discussed previously, users can interact with the displayed virtual page 2712, including its elements 2710, 2714, 211, 2718, to edit the various features of the virtual page 2712. Edits can involve specific data elements, page structure features, code front-end, back-end code and more. As discussed earlier, these edits can be received by the Site Area Database 124 and / or other databases.
[000399] [000399] FIG. 28 is a 2800 block diagram of a virtual web page, according to some modalities of the present disclosure. Consistent with the previous examples, the web page 2712 can include several User Selectable Features 2802, including a display feature 2804, search element 2806, indicators 2810, scroll feature 2810, and other features. The virtual web page 2712 can also include data elements 2714 and front-end code 2812, as discussed earlier. In addition, the virtual webpage 2712 may be associated with the backend code (not shown), such as the dynamic webpage code. Users can view, interact and make edits on virtual page 2712, as discussed earlier. These edits can be received by one or more components of the website creation system, such as the database of the site area 124. By displaying the virtual page 2712, users can view the edits they are making before a corresponding page be published. To publish virtual page 2712 in active mode, a user can select a “publish” or “render” link, as discussed earlier.
[000400] [000400] FIG. 29 is a timeline 2900 display of dynamic updating of web pages, in accordance with some modalities of this disclosure. In particular, when a user makes edits to a 2712 virtual web page, the edits can be updated in the Site Area Database 124 and,
[000401] [000401] As time progresses in the display of the 2900 timeline, the user can make edits on the virtual page 2712. For example, as shown, the user can make edits on the Test Tab 2 2904, resulting in the edited Tab 2 In addition, a new Data Element 3 2906 can be added to virtual page 2712, as part of data group 2710. As edits to virtual page 2712 are made, corresponding edits can be made in Active Environment 2908. For example, after the user selects a “publish” or “render” function, Active Environment 2908 can be updated to display updates to data group 2710 and other aspects of virtual page 2712. For example, a first version of the actual web 2910 may not include edited Tab 2 or Tab 3, while the subsequent version of the actual 2912 web page may include these updates. In various modalities, updates on virtual page 2712 can be made automatically or by selecting a renew or update function. In addition, updates to the actual 2910 and 2912 web pages in Active Environment 2908 can be done with the user confirming a transition to Active Environment 2908 (for example, by selecting a “publish” or “render” link).
[000402] [000402] FIG. 30 represents a block diagram of a Dynamic Visualization System 3000, according to some modalities of the present disclosure. As shown in FIG. 30, the Dynamic Visualization System 3000 helps to display web pages as they would appear, for example, in the Deployment Environment
[000403] [000403] The 3010 Display Interface can be used to display static web pages and virtual web pages (that is, instances of a given 2704 web page template). The virtual web pages generated for viewing on the 3010 Viewing Interface can be accompanied by a Navigation Interface 242. The Viewing Interface 3010 can allow the Navigation Interface 242 to include scrolling features to allow users to scroll through multiple pages generated web pages for display on the 3010 Display Interface. The Navigation Interface 242 can allow sequential navigation and direct access to specific virtual web pages, as well as navigation between virtual pages through search (for example, using values of the key data item used to identify specific virtual pages). The Navigation Interface 242 can have direct access to specific virtual web pages and can support virtual web pages marked for selectively browsing. For example, the virtual web pages displayed on the 3010 Preview Interface can be accompanied by links to the first, last, previous or next page. The WBS 100 can also support other arrangements of virtual pages, not just linear ones. For example, WBS 100 can support a hierarchical arrangement of virtual pages, which can be navigated using additional options such as "go to the top level of the tree" or "expand the level below the current page".
[000404] [000404] FIG. 31 illustrates a visualization of a 3110 virtual webpage being edited, in accordance with some of the modalities of this disclosure. As shown in FIG. 31, Fron-end 126 is associated with Data Group 210. Construction Tools 121 included in front-end 126 can be associated with data elements specific to Data Group 210. Virtual Web Page 3110 can display the Web Page indexable web 125, including front-end 126 and can be viewed on the 3010 Display Interface. In some embodiments, the 3010 Display Interface can be a frame or other graphical representation within the Online Editor Interface 243. The 3010 Display Interface can allow the 3110 Virtual Web Page to be viewed as it would appear on different mobile and desktop devices, using different languages, adapted for accessibility requirements or modified for specific audiences.
[000405] [000405] FIG. 32 is a schematic diagram that describes relationships between data groups and sites, according to some modalities of the present disclosure. As shown in FIG. 32, a group of 3220 Virtual Web Pages on a site can be associated with the same Data Group 210. In some embodiments, the group of Virtual Web Pages 3220 can be associated with a set of 3230 Data Groups. modalities, a group of 3240 Sites can share the same set of 3230 Data Groups. A group of 3240 Sites that share the set of 3230 Data Groups can have the same owner or operator or can be given appropriate permissions (although a control mechanism to access specific Data Groups 210. In some embodiments, a group of 3240 Sites that shares a set of 3230 Data Groups may have been built by the same Programmer / Designer 1540, as discussed earlier.
[000406] [000406] As illustrated in FIG. 32, a 3213 Repeater is a construction tool visible on the front end of a web page that displays different items of content or groupings in different sections with a repeated design or layout. In some embodiments, the 3213 Repeater can be part of a 3111 Virtual Web Page generated using a software-based router, as discussed hereinafter or part of a regular (static) indexable Web Page 125. The 3213 Repeater displays content different based on Data Element 1 211 and Data Element M 3212 of Data Group 210. The repeater can be directly associated with a subset of Data Group 3213 of Data Group 210. For example, a repeater can be used to create five different groupings of text and images. Each grouping can automatically position text and images with the same proportions and layout. However, in some modalities, the actual content of the text and images may be different in each group.
[000407] [000407] FIG. 33 is a schematic diagram that describes the components involved in the generation of virtual web pages, according to some modalities of the current disclosure. As shown in FIG. 33, Webpage Template 2704, similar to indexable web pages, can be associated with Data Group 210 and other data groups. As discussed earlier, the 3310 software-based Router can be used to link data elements in a Data Group 210 and can be applied to Webpage Template 2704 to generate Virtual Web Pages 3111, 3313 and 3312. The Based Router in software 3310 you can select / filter / sort data elements in Data Group 210 to apply to Webpage Template 2704 and groups of virtual web pages based on the URL sent by a user. The 3310 software-based router identifies the Webpage Template 2704 based on a URL prefix. The 3310 software-based router can identify data elements in Data Group 210 to be applied to Webpage Template 2704 to generate virtual web pages based on URL elements (for example, suffix components, text segments or parameter values) following the URL prefix. In some embodiments, the URL prefix “prefix1” identifies the 3310 software-based Router for the 2704 Webpage Template. The 3310 software-based Router can generate the Virtual Web Pages 3111 and 3312 based on the suffix value “ marca1 "and" marca2 ", respectively. The 3310 software-based Router can generate a Sitemap sitemap with prefix 1 3313 listing possible URLs of all virtual web pages that can be generated using Webpage Template 2704 and the associated Data Group 210, as well as other data groups. The Site Map with prefix 1 3313 can assist in indexing virtual web pages 3111 and 3312 by Search Engine 170.
[000408] [000408] FIG. 34 is the flowchart 3400 that shows the steps involved in the generation and visualization of virtual web pages, according to some modalities of this disclosure. Flowchart 3400 represents the steps that can be performed in the system modalities described previously.
[000409] [000409] As shown in FIG. 34, in step 3410, a Dynamic Visualization System 3000 can store data elements in the Site Area Database 124. As discussed earlier, data elements can take a variety of different forms, such as text, images, videos, backgrounds and records that consist of a combination of any of these types of objects.
[000410] [000410] In step 3420, the Dynamic Visualization System 3000 can store instructions that allow the organization of data elements stored in groups of data. For example, groups can be defined in databases. In addition, groups can be defined by the relationships between group elements or by fields in data elements whose values depend on other fields. Consistent with the previous modalities, data groups can be defined before any specific visual elements, fields or web pages are defined.
[000411] [000411] In step 3430, the Dynamic Visualization System 3000 can provide further instructions to the web browser that displays the Online Editor Interface 243 to allow the addition of additional data elements to previously created data groups in the Area Database 124. In this way, existing groups can be supplemented or edited to contain different or additional elements. A user can repeat Step 3420 and can return at any time to add more data elements. Likewise, this step can include instructions for performing additional operations on data elements, such as deleting and updating. For example, a user can switch between Steps 3410, 3420 and 3430 or proceed to Step 3430.
[000412] [000412] In step 3440, the Dynamic Visualization System 3000 can execute instructions to assist in associating previously inserted data elements from groups of data stored in the Site Area Database 124 to the site being edited in the Online Editor Interface 243 A user can repeat Step 3420 and can return at any time to create even more associations between the web pages of the website being built and the data elements organized as groups of data stored in the Site Area Database 124 .
[000413] [000413] In Step 3450, the Dynamic Visualization System 3000 provides instructions to help associate groups of data elements with the web pages of a website. This may involve, as discussed earlier, linking fields on a form to each other to enable / disable and filter the potential values allowed for a field (for example, a form to fill in the address may be listed in the city field values, depending on the selection in the status field).
[000414] [000414] In Step 3460, the Dynamic Visualization System 3000 provides instructions for the Online Editor Interface 3000 to allow viewing of web pages of a website being built on the Online Editor Interface 243. Visualizations can allow editing in real time, as previously discussed.
[000415] [000415] A user can repeat steps 3430, 3440, 3450, 3460 any number of times and repeat them in any order.
[000416] [000416] FIG. 35 is a schematic diagram of users who interact with the 3500 website hosting system, in accordance with some of the modalities of this disclosure. As shown in FIG. 35, the 3500 website hosting system includes the 3510 hosting server, which includes one or more systems for creating and viewing websites, the 3520 plug-in server running the plug-in code, Processor 260, 820 Memory storing the plug-in components and code, a 3570 Interface to develop and upload the plug-in code and other components.
[000417] [000417] The 3510 hosting server can be one or more servers that host 3511, 3512 and 3513 co-hosted sites. The 3510 hosting server can be a web server running instance on the On-Demand System 800, for example or on another type of website hosting system. In some ways, the 3510 hosting server can be multiple instances of web server running on the On-Demand System 800. The 3510 hosting server can also be the WBS 100, which stores websites edited and accessed by the Programmer / Designer 1540 and by the 1530 End User, as previously discussed.
[000418] [000418] The 411 Editing Tools, as discussed earlier, are common tools for editing a website shared by sites hosted by the 3510 Hosting Server. In some ways, the 411 Editing Tools can be shared between multiple 3510 Hosting Servers co-hosted sites 3511-3513.
[000419] [000419] The 3520 plug-in server can be one or more servers running the plug-in code in a 3521 isolation environment. In some embodiments, the 3520 plug-in server uses the same infrastructure as the hosting server 3510 (which can be physical servers or a web server running instance, as noted earlier). The 3530 plug-in is present in the 820 memory and can be viewed or accessible through the 3531 user interface, 3532 front-end plug-in code and 3533 back-end plug-in code.
[000420] [000420] Users 3540-3560 can access Edition 411 Tools on the 3510 Hosting Server to edit Sites 3511- 3513, respectively. In some embodiments, for example, Site 3511 being edited by User 3540 may include a 3530 Plug-in. For example, Site 3511 can play video through a 3530 video player plug-in when Site 3511 is accessed using Web Browser 131 on Web Viewing Device 130. The 3511 website that changes the 3540 user may include editing and uploading the plug-in code via Interface 3570. In some embodiments, the Interface 3570 may be part of 411 editing tools.
[000421] [000421] Users 3540-3560 interact with Sites 3511-13 on the 3510 Hosting Server through the shared platform
[000422] [000422] 3511 End User Viewing Site 1530 using Web Browser 131 on Web Viewing Device 130 may include 3531 Plug-in 3531 User Interface. For example, 3530 Plug-in can be a player and the 3531 User Interface may include stylized playback control buttons for the 3530 video player Plug-in. The 3532 front-end plug-in code can also be transmitted via the 3531 User Interface when the User final 3540 accesses a website. The End User 1530 interacting with the 3531 User Interface of the 3530 Plug-in may result in the 3532 Front-end Plug-in Code for the 3530 Plug-in running in Web Browser 131. In some ways, the User interaction end 1530 with Site 3511 may also result in the execution of the 3533 back-end plug-in code in the 3520 plug-in. For example, the end user 3540 when clicking on the playback controls of a video player plug-in may result in the execution and request of a 3532 front-end plug-in code, and the additional 3533 back-end plug-in code can compress the video based on network bandwidth availability.
[000423] [000423] FIG. 36 represents a technique of controlled access to co-hosted sites, according to some modalities of this disclosure. As shown in FIG. 36, Users 3540, 3550 are grouped and allowed access to Sites 3511 and 3512 co-hosted
[000424] [000424] FIG. 37 represents groups of co-hosted sites sharing plug-in code on common routes, according to some modalities of this disclosure. As shown in FIG. 37, the 3500 web hosting system has two sets of co-hosted sites, each differing from the other by a URL route. For example, Sites 3711 co-hosted on Common Route 1 can share the domain www.a.com and Sites 3731 co-hosted on Common Route 2 can share the domain www.b.com. Alternatively, co-hosted Sites 3711 on common Route 1 may have a common subdomain a.wixsite.com and co-hosted Sites 3731 on Common Route 2 may have a common subdomain b.wixsite.com. Sites with common routes can be co-hosted on a server or hosting environment to create an isolation environment and eliminate interaction with other co-hosted site collections. Co-hosted sites can also have different plug-in servers to create isolated environments for the execution of the plug-in code. Common route 1 3711 co-hosted sites and common route 2 3731 co-hosted sites can still share the same Processor 260 and 820 Memory or have different processors and memory. FIG. 38 represents isolated execution environments of the 3533 back-end plug-in Code, in accordance with some of the modalities of this disclosure. As shown in FIG. 38, 3533 Plug-in Isolation Environment 3533 Back-end Plug-in Code can be based on a 3810 container (for example, Docker) or a 3820 Virtual Machine or a 3830 Operating System Process. In some embodiments, the 3521 Isolation Environment may include one or more 3810 Container, 3820 Virtual Machine and 3830 Operating System Process (for example, serverless code), each running separate 3533 Plug-in Backend Code. In some embodiments, a plug-in hosting the 3530 plug-in server can include multiple isolation environments.
[000425] [000425] FIG. 39 represents controlled access and the execution of the front-end Plug-in Code, in accordance with some of the modalities of this disclosure. As shown in FIG. 39, accessing Site 3511 may result in access to Code 3532 of Plug-in Front-end Plug-in 3530 and Code 3931 of plug-in 2 Front-end from another plug-in. Site 3511 can guarantee the execution of each of the plug-ins in separate Sub-regions 3910 and 3930, respectively. The 3500 website hosting system can also create a secure communication channel (for example, SSL, secure tunnel, etc.) to allow only certain other sub-regions of the website to be accessible. The secure communication channel can restrict the access of a front-end plug-in to other sub-regions of the site. For example, Front-end Plug-in Code 3532 running in sub-region 3910 can communicate with another sub-region 3920, but access to the sub-region can be denied
[000426] [000426] FIG. 40 represents the isolated execution on the client side of the plug-in code, according to some modalities of the present disclosure. As shown in FIG. 40, Site 3511 accessed using Web Browser 131 by an End User 1530 may result in access to the 3530 Front End Plug-in Code 3532. End User 1530 access may result in the creation of a iframe to run 3532 front-end plug-in code in isolation. In some embodiments, the 3532 front-end plug-in code can be copied to different sub-regions 3712-3713 of the 3511 site for execution in isolation. For example, Site 3511 can show multiple video players, each broadcasting different video streams, but using the same plug-in code. In some embodiments, the Plug-in Code 3532-3533 running on an Iframe may not have access to client-side cookies (for example, HTTP cookies).
[000427] [000427] FIG. 41 is a flowchart that shows the steps involved in accessing and executing the website code and the plug-in, according to some of the modalities of this disclosure. As shown in FIG. 41, in step 4110, the 3500 Website Hosting System hosts websites that share one or more data elements, models, pieces of code, routes or other common functionality on a common server or set of hosted servers. Servers can also be co-hosted based on ownership or administrative and editing privileges for the plurality of users. For example, the 3500 Website Hosting System can host websites created and managed by a number of independent, non-affiliated entities or individuals.
[000428] [000428] In Step 4120, Site Hosting System 3500 provides access to Editing Tools 411 to further edit the sites co-hosted by the system. As discussed earlier, the 411 Editing Tools can allow the user to edit various aspects of the sites.
[000429] [000429] In step 4130, a user effort to access a website for editing purposes results in the 3500 web hosting system, assessing whether the user who made the request has access or privileges to edit the website. The valuation may depend on the ownership of a particular website. In some ways, the owner or administrator of a website may provide administrator access and / or edit to other users using the 411 Editing Tools. In addition, in some ways, editing rights may depend on whether the user is a registered user or has been authenticated to access the 3500 web hosting system.
[000430] [000430] If the answer to Step 4130 is no, the requested access to the site is denied and the user may need to request editing privileges from the site administrator. The 4100 process is considered complete in case of failure to access the website edition. Alternatively, the 4100 process can be returned to Step 4120 or 4130.
[000431] [000431] If the answer to Step 4130 is yes, process 4110 proceeds to Step 4150. In Step 4150, an interface for uploading the plug-in is presented to the user requesting access to edit a website. The interface can be similar to those discussed earlier for users to edit front-end or back-end code.
[000432] [000432] In step 4160, the 3500 website hosting system receives the plug-in changes and stores them. A user-uploaded plug-in can, for example, include edits to the Plug-in 3530 3533 Back-end Plug-in Code. In some embodiments, user edits may include edits to the Front- end 3532 of Plugin 3530. Alternatively, a user can also edit the 3531 User Interface of the 3530 Plug-in. In some ways, a user can edit the entire 3531 User Interface, 3532 Front-end Plug-in Code and 3533 backend plug-in code.
[000433] [000433] A user edit plug-in code (for example, Front-end plug-in code 3532 or Back-end plug-in code 3533) can edit the plug-in code in multiple sessions , resulting in the repetition of steps 4120 to 4160, as well as a few additional steps.
[000434] [000434] In step 4170, the Web Hosting System 3500 runs the 3530 plug-in when the 3511 website is accessed by a user (for example, end user 1530, 3540, 3550, 3560). Running the plug-in code includes creating a 3521 Isolation Environment to run the code. The 3521 Isolation Environment can include isolation on the client side in a web browser and on the server side to run 3532 front-end 3532 and 3533 back-end code, respectively.
[000435] [000435] FIG. 42 is an example of a user interface for editing a web page and creating a database collection, according to some of the modalities of this disclosure. For example, the web page can be generated using a website development system, such as that provided by WIX.COM. As illustrated, a database can be created that supports one or more dynamic web pages.
[000436] [000436] The Site Structure 4202 sidebar can include several options for editing and configuring the site, such as a list of different pages (for example, HOME, ACADEMIC, EVENTS, EXHIBITIONS, STUDENT AREA, Undergraduate courses and NEWS) , as well as options for Public resources, back-end functionality and database functionality. In addition, a 4204 toolbar can include several options for adding and editing content on web pages.
[000437] [000437] As illustrated, the 4206 interface allows a user to configure a database. The 4206 interface can be generated, for example, if a user selects the option “Database” in the sidebar of Site structure 4202. The user can customize the database, giving it a unique name in the 4208 field. For example, the database can be called a “course” database.
[000438] [000438] FIG. 43 is an example of a user interface for editing a web page and configuring permissions for a database collection, according to some of the modalities of this disclosure. For example, continuing with the previous example, a user who creates a “course” database can access several different 4310 permissions options for the database and the corresponding dynamic pages that can be based on it. Permissions 4310 can address the content of web pages, data entry on forms, user-generated content on the page, content restricted to registered members, forms that only registered members can complete, and certain private data that only certain users (for example, administrators) can access.
[000439] [000439] FIG. 44 is an example of a user interface for editing a web page and entries in a database collection, in accordance with some of the modalities of this disclosure. For example,
[000440] [000440] FIG. 45 is an example of a user interface for editing a web page and displaying the result of a database collection, in accordance with some of the modalities of this disclosure. For example, in a dynamic web page that has been created, the contents of the database can be included. As illustrated, content 4520 includes a description of a course from the database. 4520 content is automatically extracted from the database without the user having to copy it manually on the web page. Using this technique, several dynamic pages can be created, each linking to a different part of the database and having a unique arrangement of content based on its link to the database.
[000441] [000441] FIG. 46 is an example of a user interface for editing a web page and creating a repeating function, according to some of the modalities of this disclosure. As described earlier, a repeater function can be added to a website or page to create two or more instances of elements (for example, combinations of text and images) that are similar in structure or layout. Using a repeater, two or more instances of elements can be created that differ in at least one aspect (for example, having different texts, images, etc.).
[000442] [000442] As shown, a user can access the 4622 Repeaters menu to configure a repeater. For example, using the 4204 toolbar, a user can select the Lists and Tables option, which allows the creation of repeaters and various other elements that display various objects. To populate repeater instances with content, a user can link the repeater or individual instances to data sets, such as data stored in a database. In some modalities, a user may decide to add an element to each of the instances in an identical way. When adding the element to an instance, it can be added automatically to each instance. Alternatively, a user can specify (for example, through back-end or front-end code) that each instance created by a repeater must have different content.
[000443] [000443] FIG. 47 is an example of a user interface for editing a web page and showing the result of a repeating function, according to some of the modalities of this disclosure. As illustrated, a user created three combinations of 4724 elements through a repeater. Each 4247 combination has a structure similar to an image, text (place name), text (description) and a “Read more” hyperlink icon. In editing mode, the user can further edit the layout and appearance of these instances, for example, repositioning the image in relation to the text elements, changing the hyperlink, resizing the fields, etc. In addition, as discussed earlier, each element of the instances can connect to a different part of a database. For example, the three combinations of 4724 elements can link each to a different column in a database corresponding to the content that each must extract from the database. In this way, while the three combinations of 4724 elements have a common layout, each has a different textual or graphic content.
[000444] [000444] Various operations or functions are described here, which can be implemented or defined as code or software instructions. This content can be directly executable (“object” or “executable” form), source code or difference code (“delta” or “field” code). Software implementations of the modalities described in this document can be provided through a manufacturing article with the code or instructions stored therein, or through a method of operating a communication interface to send data through the communication interface. A computer or machine-readable storage medium can cause it to perform the functions or operations described and includes any mechanism that stores information in a machine-accessible format (for example, computing device, electronics and the like), such as media writable / non-writable (for example, read-only memory (ROM), random access memory (RAM)), magnetic disk storage media, optical storage media, flash memory devices and the like). A communication interface includes any mechanism that interfaces with any wired, wireless, optical and similar medium to communicate with another device, such as a memory bus interface, a processor bus interface, an Internet connection, a disk controller and the like. The communication interface can be configured by providing configuration parameters and / or sending signals to prepare the communication interface to provide a data signal that describes the content of the software. The communication interface can be accessed through one or more commands or signals sent to the communication interface.
[000445] [000445] The present disclosure also refers to a system for executing the operations contained herein. This system can be specially built for the required purposes or it can comprise a general purpose computer selectively activated or reconfigured by a computer program stored on the computer. This computer program can be stored on a computer-readable storage medium, such as, without limitation, any type of disk, including floppy disks, optical disks, CDROMs and magnetic optical disks, ROMs (Read Only Memories), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
[000446] [000446] The modalities of the present disclosure can be implemented with instructions executable by computer. Computer executable instructions can be organized into one or more computer executable components or modules. Disclosure aspects can be implemented with any number and organization of such components or modules. For example, aspects of disclosure are not limited to specific computer executable instructions or specific components or modules illustrated in the figures and described here. Other modalities may include different instructions executable by computer or components with more or less functionality than illustrated and described here.
[000447] [000447] Computer programs based on the written description and methods of this specification are within the skills of a software developer. The various programs or program modules can be created using a variety of programming techniques. For example, program sections or modules can be designed using JavaScript, Scala, python, Java, C, C ++, assembly or any other programming language, as well as data encoding languages (such as XML, JSON etc. .), query languages (like SQL), presentation-related languages (like HTML, CSS etc.) and data transformation language (like XSL).
[000448] [000448] The words "comprising", "having", "containing" and "including" and other similar forms have the equivalent meaning and are interpreted as open, in which an item or items after any one of these words is not intended to be a list exhaustive list of such items or items or should be limited to the listed items only. In addition, the singular forms "one", "one", and "o / a" should include references in the plural, unless the context clearly dictates otherwise.
[000449] [000449] Having described the aspects of the modalities in detail, it will be evident that modifications and variations are possible without departing from the scope of the aspects of the invention as defined in the appended Claims. As several changes can be made in the previous constructions, products and methods, without departing from the scope of aspects of the invention, it is intended that the whole subject contained in the previous description and shown in the attached drawings is interpreted as illustrative and not in a limiting sense. .
权利要求:
Claims (29)
[1]
1. Non-Transient Computer-Readable Medium, to update a back-end database containing data sets that populate a plurality of web pages on a website, characterized by the fact that the computer-readable medium contains instructions that, when executed by at least one processor, cause at least one processor to perform the steps of: receiving via the user interface, a plurality of data elements, the data elements organized in one or more groups of at least one data element, each group to display on a separate web page from a website; store groups of at least one data element in a database; generate a plurality of virtual web pages, characterized in that each virtual web page is a preview of a corresponding actual web page before the corresponding actual web page is activated, where each of the corresponding actual web pages is not designed with functionality to update the database; display each group of at least one data element in a group separate from the plurality of virtual web pages; display an editing tool to allow a user to edit a virtual web page from the plurality of virtual web pages; convert edits to the virtual web page into updates to the database;
store updates in the database; and enable, during a live view of a corresponding real web page associated with the virtual web page, a view on the corresponding real web page with updates made to the virtual web page during preview.
[2]
2. Non-Transient Computer-Readable Medium according to Claim 1, characterized in that each of the plurality of virtual web pages is displayed within a frame associated with a user interface editor interface.
[3]
3. Non-Transient Computer-Readable Medium, according to Claim 1, characterized in that the steps also include displaying a user selectable resource, allowing the user to browse through the plurality of virtual web pages to display each and dynamically each one the plurality of virtual web pages.
[4]
4. Non-Transient Computer Readable Medium, according to Claim 1, characterized in that the steps further comprise displaying a user selectable resource that allows the user to select a specific virtual web page from the plurality of virtual web pages based on an identifier for the specific virtual web page.
[5]
5. Non-Transient Computer Readable Medium according to Claim 4, characterized in that the identifier of the specific virtual web page is based on a data element associated with the specific virtual web page.
[6]
6. Non-Transient Computer-Readable Medium, according to Claim 1, characterized in that the steps further comprise associating a unique URL to each of the plurality of virtual web pages.
[7]
7. Non-Transient Computer Readable Medium, according to Claim 6, characterized in that each of the plurality of virtual web pages is generated based on a site map that refers to the unique URL of each of the plurality of pages virtual web pages.
[8]
8. Non-Transient Computer Readable Medium, according to Claim 1, characterized in that the editing tool is configured to receive edits in the stored groups of at least one data element in the database.
[9]
9. Non-Transient Computer Readable Medium, according to Claim 1, characterized in that the editing tool is configured to receive edits in attributes of the plurality of virtual web pages.
[10]
10. Non-Transient Computer Readable Medium, according to Claim 1, characterized in that the editing tool is configured to receive edits in the code that is used to generate the plurality of virtual web pages.
[11]
11. Non-Transient Computer-Readable Medium according to Claim 1, characterized in that the editing tool is configured to display a plurality of skeleton code segments that represent the actual code used to generate the plurality of virtual web pages and receive edits to the skeleton code that are translated into edits to the actual code.
[12]
12. Non-Transient Computer-Readable Medium according to Claim 1, characterized in that the data elements are received via the user interface from an external source.
[13]
13. Non-Transient Computer Readable Medium, according to Claim 1, characterized in that the operations also include: accessing a software-based router associated with the plurality of virtual web pages; and configure the software-based router to generate a different version of each of the various virtual web pages based on one or more segments of a received URL.
[14]
14. Non-Transient Computer-Readable Medium according to Claim 1, characterized in that a subset of each group of at least one data element is organized by a repeater function, the repeater function generating one or more displayed instances of the subset of each group of at least one data element.
[15]
15. Non-Transient Computer-Readable Medium according to Claim 14, characterized in that the real-time display of the corresponding real web page includes one or more instances.
[16]
16. Computer Implemented Method, to update a back-end database containing data sets that populate a plurality of web pages on a website, the method comprising: receiving via the user interface, a plurality of data elements, data elements organized into one or more groups of at least one data element, each group for display on a separate web page from a website; store groups of at least one data element in a database;
generate a plurality of virtual web pages, characterized in that each virtual web page is a preview of a corresponding actual web page before the corresponding actual web page is activated, where each of the corresponding actual web pages is not designed with functionality to update the database; display each group of at least one data element in a group separate from the plurality of virtual web pages; display an editing tool to allow a user to edit a virtual web page from the plurality of virtual web pages; convert edits to the virtual web page into updates to the database; store updates in the database; and enable, during a live view of a corresponding real web page associated with the virtual web page, a view on the corresponding real web page with updates made to the virtual web page during preview.
[17]
17. Computer Implemented Method according to Claim 16, characterized in that each of the plurality of virtual web pages is displayed within a frame associated with a user interface editor interface.
[18]
18. Computer Implemented Method, according to Claim 16, characterized in that it also comprises displaying a user-selectable resource that allows the user to browse through the plurality of virtual web pages to individually and dynamically display each of the plurality of pages of the virtual web pages.
[19]
19. Computer Implemented Method, according to Claim 16, characterized in that it further comprises displaying a user selectable resource that allows the user to select a specific virtual web page from the plurality of virtual web pages based on an identifier of the specific virtual web page.
[20]
20. Computer Implemented Method according to Claim 16, characterized in that the identifier of the specific virtual web page is based on a data element associated with the specific virtual web page.
[21]
21. Computer Implemented Method, according to Claim 16, characterized in that it also comprises associating a unique URL to each of the various virtual web pages.
[22]
22. Computer Implemented Method according to Claim 21, characterized in that each of the plurality of virtual web pages is generated based on a site map that references the unique URL of each of the plurality of web pages virtual.
[23]
23. Computer Implemented Method, according to Claim 16, characterized in that the editing tool is configured to receive edits in the stored groups of at least one data element in the database.
[24]
24. Computer Implemented Method according to Claim 16, characterized in that the editing tool is configured to receive edits on attributes of the plurality of virtual web pages.
[25]
25. Computer Implemented Method, according to Claim 16, characterized in that the editing tool is configured to receive edits in the code that is used to generate the plurality of virtual web pages.
[26]
26. Computer Implemented Method according to Claim 16, characterized in that the editing tool is configured to display a plurality of skeleton code segments that represent the actual code used to generate the plurality of virtual web pages and receive editions in the skeleton code that are translated into editions in the actual code.
[27]
27. Computer Implemented Method according to Claim 16, characterized in that the data elements are received through the user interface from an external source.
[28]
28. System to Allow Dynamic Editing on Web Pages To Update Back-end Database, containing data sets that populate the web pages, characterized by the system comprising: an online database configured to store a plurality of data elements for display on a plurality of web pages, data elements organized into one or more groups of at least one data element, each group for display on a separate web page from a website, each separate page with no functionality to update the online database; and at least one processor configured to: provide instructions remotely to a browser to provide an interface displaying an editable version of a first web page generated based on a group of at least one data element, allowing the user to edit at least one data element;
convert edits received through the interface in the editable version of the first web page into updates to the online database; store updates in the online database; and enable, during a real-time display of the first web page, a display on the first web page with updates made to the editable version of the first web page.
[29]
29. System to Allow Dynamic Editing on Web Pages To Update Back-end Database, according to Claim 28, characterized in that at least one processor is further configured to generate a plurality of separate editable versions of web pages , where each separate editable version of a webpage is displayed within a frame associated with an interface from the interface editor.
类似技术:
公开号 | 公开日 | 专利标题
BR112019024309A2|2020-11-03|edit database while viewing virtual web page
US20180239595A1|2018-08-23|Layout management in a rapid application development tool
US9465822B2|2016-10-11|Data model generation based on user interface specification
US11074087B2|2021-07-27|System and method for identifying, indexing, and navigating to deep states of mobile applications
US8671387B2|2014-03-11|Compilation and injection of scripts in a rapid application development
US8788955B2|2014-07-22|Creation and configuration of compound widgets
US20120291011A1|2012-11-15|User Interfaces to Assist in Creating Application Scripts
US20120291006A1|2012-11-15|Development Architecture for Cloud-Based Applications
US10936477B2|2021-03-02|End-to-end user interface component testing
US20210149640A1|2021-05-20|Automatically producing mobile application binaries
US20210149653A1|2021-05-20|Deploying mobile applications
Prettyman2016|Interfaces, Platforms, Containers, and Three-Tier Programming
同族专利:
公开号 | 公开日
JP2020530610A|2020-10-22|
US20210397776A1|2021-12-23|
US20190258459A1|2019-08-22|
AU2018319444A1|2019-10-31|
US20190245910A1|2019-08-08|
US10209966B2|2019-02-19|
US10326821B2|2019-06-18|
US20190028531A1|2019-01-24|
US10379820B1|2019-08-13|
US11106860B2|2021-08-31|
US10331420B2|2019-06-25|
EP3593254A1|2020-01-15|
IL271915D0|2020-02-27|
US20190026382A1|2019-01-24|
US10719300B2|2020-07-21|
US10521198B2|2019-12-31|
US20190026082A1|2019-01-24|
US20190026083A1|2019-01-24|
US20190149591A1|2019-05-16|
US10397305B1|2019-08-27|
WO2019038588A1|2019-02-28|
US20190026296A1|2019-01-24|
US10915300B2|2021-02-09|
US20190026443A1|2019-01-24|
CA3060362A1|2019-02-28|
EP3593254A4|2021-01-20|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US6247032B1|1997-06-19|2001-06-12|International Business Machines Corp.|Automated system and method for approving web site content|
AT414942T|1999-02-26|2008-12-15|Henry Haugland|MASS PRODUCTION OF INDIVIDUAL VIRTUAL SERVER, VERTUAL WEBSITES AND VIRTUAL WEB OBJECTS|
US7596606B2|1999-03-11|2009-09-29|Codignotto John D|Message publishing system for publishing messages from identified, authorized senders|
US6636242B2|1999-08-31|2003-10-21|Accenture Llp|View configurer in a presentation services patterns environment|
US7289964B1|1999-08-31|2007-10-30|Accenture Llp|System and method for transaction services patterns in a netcentric environment|
US6728762B1|2000-01-04|2004-04-27|International Business Machines Corporation|System and method for browser definition of workflow documents|
US8065399B2|2000-04-17|2011-11-22|Circadence Corporation|Automated network infrastructure test and diagnostic system and method therefor|
US20020065851A1|2000-06-02|2002-05-30|Watson Emerson C.|System and method for creating a website|
US6732332B1|2000-08-28|2004-05-04|Und Aerospace Foundation|Automated web site creation system|
US6901424B1|2000-10-10|2005-05-31|Markettools, Inc.|System and method for creating a sample pool for a web-based survey|
US20020099738A1|2000-11-22|2002-07-25|Grant Hugh Alexander|Automated web access for back-end enterprise systems|
US20020165936A1|2001-01-25|2002-11-07|Victor Alston|Dynamically branded web sites|
US8601492B2|2001-03-31|2013-12-03|Siebel Systems, Inc.|User interface for multi-channel communication|
US7546576B2|2001-06-15|2009-06-09|Lightsurf Technology, Inc.|Software framework for web-based applications|
US7000218B2|2001-06-29|2006-02-14|International Business Machines Corporation|System and method for developing custom programmable tags|
US6985939B2|2001-09-19|2006-01-10|International Business Machines Corporation|Building distributed software services as aggregations of other services|
US7178108B1|2001-12-28|2007-02-13|Sprint Communications Company L.P.|System and method for development, maintenance and modification of multiple web sites|
JP2004062402A|2002-07-26|2004-02-26|Fujitsu Ltd|Timeout management system, timeout management server and timeout management program|
CA2406876A1|2002-10-04|2004-04-04|Ibm Canada Limited-Ibm Canada Limitee|Method and apparatus for managing a collection of portlets in a portal server|
US7240077B1|2002-12-30|2007-07-03|Amazon.Com, Inc.|Web site content change management|
US7062506B2|2003-01-24|2006-06-13|The Cobalt Group, Inc.|Staged publication and management of dynamic webpages|
US7613687B2|2003-05-30|2009-11-03|Truelocal Inc.|Systems and methods for enhancing web-based searching|
US9778919B2|2003-06-27|2017-10-03|Adobe Systems Incorporated|Dual context interaction with a content object for facilitating content creation and software development|
US20040268238A1|2003-06-30|2004-12-30|Peiya Liu|Systems and methods for processing documents using an XML-based process flow description language|
US7308643B1|2003-07-03|2007-12-11|Google Inc.|Anchor tag indexing in a web crawler system|
US7403491B2|2004-04-15|2008-07-22|Alcatel Lucent|Framework for template-based retrieval of information from managed entities in a communication network|
US8019749B2|2005-03-17|2011-09-13|Roy Leban|System, method, and user interface for organizing and searching information|
US7536641B2|2005-04-29|2009-05-19|Google Inc.|Web page authoring tool for structured documents|
US7734644B2|2005-05-06|2010-06-08|Seaton Gras|System and method for hierarchical information retrieval from a coded collection of relational data|
US7734722B2|2005-06-02|2010-06-08|Genius.Com Incorporated|Deep clickflow tracking|
EP1934800A4|2005-08-17|2010-12-08|Wideport Com Inc|Automatic website generator|
US8117531B1|2005-09-23|2012-02-14|Google Inc.|Interpreted language translation system and method|
US8301997B2|2006-01-10|2012-10-30|International Business Machines Corporation|System and method for serving multiple data objects and formatting functions in a single request|
GB2434947B|2006-02-02|2011-01-26|Identum Ltd|Electronic data communication system|
US20070220419A1|2006-03-10|2007-09-20|Web.Com, Inc.|Systems and Methods of Providing Web Content to Multiple Browser Device Types|
US7974956B2|2006-07-21|2011-07-05|Yahoo! Inc.|Authenticating a site while protecting against security holes by handling common web server configurations|
US20080071929A1|2006-09-18|2008-03-20|Yann Emmanuel Motte|Methods and apparatus for selection of information and web page generation|
US8645973B2|2006-09-22|2014-02-04|Oracle International Corporation|Mobile applications|
GB0622823D0|2006-11-15|2006-12-27|British Broadcasting Corp|Accessing content|
US20080133647A1|2006-11-17|2008-06-05|Mehrak Hamzeh|System and method for delivering web content to a mobile network|
EP2127321A2|2007-02-09|2009-12-02|Novarra, Inc.|Method and system for providing portions of information content to a client device|
US8499237B2|2007-03-29|2013-07-30|Hiconversion, Inc.|Method and apparatus for application enabling of websites|
WO2008156923A2|2007-05-03|2008-12-24|3Dlabs Inc., Ltd.|Method for remotely configuring user interfaces for portable devices|
US10019570B2|2007-06-14|2018-07-10|Microsoft Technology Licensing, Llc|Protection and communication abstractions for web browsers|
US8181246B2|2007-06-20|2012-05-15|Imperva, Inc.|System and method for preventing web frauds committed using client-scripting attacks|
US8577835B2|2007-06-28|2013-11-05|Salesforce.Com, Inc.|Method and system for sharing data between subscribers of a multi-tenant database service|
US8584094B2|2007-06-29|2013-11-12|Microsoft Corporation|Dynamically computing reputation scores for objects|
US7779161B2|2007-07-24|2010-08-17|Hiconversion, Inc.|Method and apparatus for general virtual application enabling of websites|
US8464228B2|2007-08-23|2013-06-11|Accenture Global Services Limited|Binary library|
US9268849B2|2007-09-07|2016-02-23|Alexander Siedlecki|Apparatus and methods for web marketing tools for digital archives—web portal advertising arts|
US8365140B2|2007-12-20|2013-01-29|Hsbc Technologies Inc.|Automated methods and systems for developing and deploying projects in parallel|
US7886021B2|2008-04-28|2011-02-08|Oracle America, Inc.|System and method for programmatic management of distributed computing resources|
US8341200B2|2008-06-12|2012-12-25|Pomian & Corella, Llc|Protecting a web application against attacks through shared files|
MY154409A|2008-07-21|2015-06-15|Secure Corp M Sdn Bhd F|Website content regulation|
US8627288B2|2008-07-22|2014-01-07|Webtrends Inc.|Method and system for web-site testing|
US9691170B2|2009-03-18|2017-06-27|Shutterfly, Inc.|Proactive creation of photo products|
GB0909695D0|2009-06-05|2009-07-22|Maxymiser Ltd|On page console|
US9883008B2|2010-01-15|2018-01-30|Endurance International Group, Inc.|Virtualization of multiple distinct website hosting architectures|
US8438648B2|2010-02-16|2013-05-07|Celartem, Inc.|Preventing unauthorized font linking|
US8850219B2|2010-05-13|2014-09-30|Salesforce.Com, Inc.|Secure communications|
US20120131645A1|2010-11-18|2012-05-24|Harm Michael W|User Scriptable Server Initiated User Interface Creation|
US8910156B1|2011-04-29|2014-12-09|Netapp, Inc.|Virtual machine dependency|
US8938791B2|2011-06-10|2015-01-20|International Business Machines Corporation|System and method to control display of a realm name|
US8874593B2|2011-07-01|2014-10-28|Salesforce.Com, Inc.|Testing data silo|
US8959427B1|2011-08-05|2015-02-17|Google Inc.|System and method for JavaScript based HTML website layouts|
US8474056B2|2011-08-15|2013-06-25|Bank Of America Corporation|Method and apparatus for token-based virtual machine recycling|
WO2013067437A1|2011-11-02|2013-05-10|Hoffman Michael Theodor|Systems and methods for dynamic digital product synthesis, commerce, and distribution|
US20130117152A1|2011-11-03|2013-05-09|Cbs Interactive, Inc.|Javascript Widget Storefront|
US8671417B2|2011-12-12|2014-03-11|Microsoft Corporation|Lightweight framework for web applications|
US8793660B2|2011-12-30|2014-07-29|Cellco Partnership|Automated testing of programming code for a web service|
US10185703B2|2012-02-20|2019-01-22|Wix.Com Ltd.|Web site design system integrating dynamic layout and dynamic content|
WO2013142273A1|2012-03-19|2013-09-26|Citrix Systems, Inc.|Systems and methods for providing user interfaces for management applications|
US9430449B2|2012-03-30|2016-08-30|Sdl Plc|Systems, methods, and media for managing editable previews of webpages|
US9262420B1|2012-04-23|2016-02-16|Google Inc.|Third-party indexable text|
US9672283B2|2012-06-06|2017-06-06|Data Record Science|Structured and social data aggregator|
US8943086B2|2012-06-29|2015-01-27|Sap Se|Model-based backend service adaptation of business objects|
US20140053060A1|2012-08-17|2014-02-20|Launchbase, LLC|Website development tool|
US10585981B2|2012-09-13|2020-03-10|Samir Issa|Method of data capture, storage and retrieval through user created form templates and data item templates by executing computer-executable instructions stored on a non-transitory computer-readable medium|
US9317490B2|2012-09-19|2016-04-19|TagMan Inc.|Systems and methods for 3-tier tag container architecture|
US9021052B2|2012-09-28|2015-04-28|Interactive Memories, Inc.|Method for caching data on client device to optimize server data persistence in building of an image-based project|
US20140095233A1|2012-10-01|2014-04-03|Oracle International Corporation|Efficiently modeling database scenarios for later use on life data|
US9195477B1|2012-10-09|2015-11-24|Sencha, Inc.|Device profiles, deep linking, and browser history support for web applications|
US9185078B2|2012-12-18|2015-11-10|Salesforce.Com, Inc.|Systems, methods, and apparatuses for implementing cross organizational data sharing|
US10089406B2|2013-01-30|2018-10-02|Oracle International Corporation|Generating web pages with integrated content|
US9307031B2|2013-02-04|2016-04-05|Oracle International Corporation|Generic model for customizing protocol behavior through javascript|
US9712593B2|2013-02-04|2017-07-18|Oracle International Corporation|Javascript API for WebRTC|
MX367103B|2013-02-10|2019-08-05|Wix Com Ltd|Third party application communication api.|
KR101953710B1|2013-03-14|2019-05-31|윅스.컴 리미티드|A system and method for dialog customization|
US9971790B2|2013-03-15|2018-05-15|Google Llc|Generating descriptive text for images in documents using seed descriptors|
US20170147480A1|2013-04-23|2017-05-25|Google Inc.|Test script generation|
US20150011338A1|2013-07-02|2015-01-08|Jeremy Russotti|Training device|
US10362145B2|2013-07-05|2019-07-23|The Boeing Company|Server system for providing current data and past data to clients|
US9836330B2|2013-07-16|2017-12-05|Hitachi, Ltd.|Virtual resource management tool for cloud computing service|
US9513885B2|2013-08-22|2016-12-06|Peter Warren|Web application development platform with relationship modeling|
US20150058339A1|2013-08-26|2015-02-26|Go DaddyOperating Company, LLC|Method for automating search engine optimization for websites|
US9229702B1|2013-08-28|2016-01-05|Lithium Technologies, Inc.|Systems and methods for application plugin deployment for websites|
US10853837B2|2013-10-07|2020-12-01|Adobe Inc.|Integrated testing, targeting and measuring of web site components|
US9817801B2|2013-12-04|2017-11-14|Go Daddy Operating Company, LLC|Website content and SEO modifications via a web browser for native and third party hosted websites|
US9607332B1|2014-02-07|2017-03-28|Google Inc.|Embedded web application gallery|
CA2938813A1|2014-02-11|2015-08-20|Wix.Com Ltd.|A system for synchronization of changes in edited websites and interactive applications|
CN106575248A|2014-05-18|2017-04-19|周凯|Performance testing system and method|
US9954936B2|2015-03-02|2018-04-24|International Business Machines Corporation|Migrating legacy applications to a multi-tenant computing environment|
BR112017026293A2|2015-06-07|2018-09-11|Wix.Com Ltd.|system for a site building system implemented on a server and method for a site building system implemented on a server|
US10726371B2|2015-06-08|2020-07-28|Sap Se|Test system using production data without disturbing production system|
CN107615244B|2015-06-26|2021-07-13|英特尔公司|Techniques to run one or more containers on a virtual machine|
US10229214B2|2015-12-31|2019-03-12|Ca, Inc.|Dynamic web page navigation|
US10148790B2|2016-03-04|2018-12-04|Bank Of America Corporation|Deployment of integrative HTML-based engine from an edge server|
US10684839B2|2016-06-15|2020-06-16|Red Hat Israel, Ltd.|Plugin for software deployment|
US10678995B2|2016-08-12|2020-06-09|Netsuite, Inc.|System and methods for control of content presented on web pages|
US20180052809A1|2016-08-16|2018-02-22|Microsoft Technology Licensing, Llc|Inferring user interaction with an iframe|
US10025924B1|2016-08-26|2018-07-17|Parallels IP Holdings GmbH|Taskless containers for enhanced isolation of users and multi-tenant applications|
US20180097820A1|2016-10-03|2018-04-05|Adobe Systems Incorporated|Managing content upload and content retrieval|
US20180173390A1|2016-12-21|2018-06-21|Aon Global Operations Ltd |Content Management System Extensions|
US10250389B2|2017-01-17|2019-04-02|Go Daddy Operating Company, LLC|Script verification using a hash|
US10671570B2|2017-02-01|2020-06-02|Open Text Sa Ulc|Web application open platform interface server architecture and applications for distributed network computing environments|
US11003668B2|2017-02-21|2021-05-11|Sap Se|Programming language independent software testing environment|
US20180309720A1|2017-04-25|2018-10-25|Verisign, Inc.|Systems, devices, and methods for automatic website generation and domain name suggestion|
US10572361B2|2017-04-28|2020-02-25|The Boeing Company|Concurrent production use of a production enterprise system and testing of a modified enterprise system|
US10866935B2|2017-08-18|2020-12-15|Benjamin J. Chung|File management method|
US20200057714A1|2018-08-17|2020-02-20|Google Llc|Testing data changes in production systems|US9158656B1|2014-07-15|2015-10-13|American Express Travel Related Services Company, Inc.|Systems and methods for progressively launching websites|
US20190065487A1|2017-08-22|2019-02-28|Salesforce.Com, Inc.|Filter logic in a dynamic page previewer|
GB201804904D0|2018-03-27|2018-05-09|Palantir Technologies Inc|Code correction|
JP2019211827A|2018-05-31|2019-12-12|ファナック株式会社|Support device|
CN109213486A|2018-08-20|2019-01-15|北京百度网讯科技有限公司|Method and apparatus for generating customized visualization component|
US10691428B2|2018-10-24|2020-06-23|Sap Se|Digital compliance platform|
US10757009B2|2018-11-20|2020-08-25|Amazon Technologies, Inc.|Global-scale connectivity using scalable virtual traffic hubs|
US11134028B2|2019-04-26|2021-09-28|NM Nevada Trust|Devices, systems and methods for optimizing workload performance of user facing web applications during high load events|
CN110362299B|2019-06-14|2020-06-26|杭州古德微机器人有限公司|Online graphical programming system based on block and raspberry pie and using method thereof|
US20200412724A1|2019-06-28|2020-12-31|Google Llc|Systems and methods using modular user interfaces for managing network permissions|
US10789195B1|2019-07-17|2020-09-29|Capital One Services, Llc|Article, device, and techniques for serverless streaming message processing|
CN110389807A|2019-07-23|2019-10-29|北京字节跳动网络技术有限公司|A kind of interface interpretation method, device, electronic equipment and storage medium|
US11132418B2|2019-08-01|2021-09-28|Kindest, Inc.|Systems and methods for generating floating button interfaces on a web browser|
US11172014B2|2019-08-21|2021-11-09|Open Text Sa Ulc|Smart URL integration using serverless service|
US11188614B2|2019-09-13|2021-11-30|Oracle International Corporation|System and method for automatic suggestion for dynamic site compilation within a cloud-based content hub environment|
US10997341B1|2019-12-12|2021-05-04|Salesforce.Com, Inc.|System editing plugin|
AU2020100253A4|2020-02-21|2020-03-26|Soul & Wolf Pty Ltd|Automation of CMS Development for a Website or Web Application|
US11023558B1|2020-04-03|2021-06-01|International Business Machines Corporation|Executing functions on-demand on a server utilizing web browsers|
US11204975B1|2020-08-10|2021-12-21|Coupang Corp.|Program interface remote management and provisioning|
US11271987B1|2020-11-26|2022-03-08|Digital.Ai Software, Inc.|Universal webhook connectivity via multi-step HTTP transformation|
US11175972B1|2021-02-24|2021-11-16|Contentful GmbH|Application framework for integrating APPs for editing content of a content management system|
CN113176878B|2021-06-30|2021-10-08|深圳市维度数据科技股份有限公司|Automatic query method, device and equipment|
法律状态:
2021-12-07| B350| Update of information on the portal [chapter 15.35 patent gazette]|
优先权:
申请号 | 申请日 | 专利标题
US201762536403P| true| 2017-07-24|2017-07-24|
US62/536,403|2017-07-24|
US201862702278P| true| 2018-07-23|2018-07-23|
US62/702,278|2018-07-23|
PCT/IB2018/001028|WO2019038588A1|2017-07-24|2018-07-24|Editing a database during preview of a virtual web page|
[返回顶部]